我在haXe的編程新的,我建我的程序它輸出:如何解決haxe程序中的成員變量初始化錯誤?
Member variable initialization is not allowed outside of class constructor
有誰知道如何解決這個問題,在不改變初始化數據成員?
我在haXe的編程新的,我建我的程序它輸出:如何解決haxe程序中的成員變量初始化錯誤?
Member variable initialization is not allowed outside of class constructor
有誰知道如何解決這個問題,在不改變初始化數據成員?
首先,如果您告訴我們您使用的是哪種版本的Haxe,以及您有哪些源代碼會產生錯誤,最好以儘可能最小的形式提供幫助,這可能會有所幫助。
我這樣說的原因是最新的Haxe版本(3.0.1)我相當確信永遠不會產生確切的錯誤信息......除非我錯了:)所以很難知道你的版本是什麼正在使用並且很難知道問題可能是什麼。
我的猜測:您正在使用不允許的成員變量的初始化。在Haxe的舊版本中,它完全不被允許,在Haxe 3中它只允許「恆定」值(字符串,整數等)。我在Haxe 3中收到錯誤消息「變量初始化必須是一個常數值」,但錯誤消息可能在版本之間發生了變化。
斷碼
class Initialization
{
static function main() {
new Initialization();
}
var myInt = 0;
var myString = "some string";
var myArray = [1,2,3]; // Error: "Variable initialization must be a constant value"
public function new() {
trace(myInt);
trace(myString);
trace(myArray);
}
}
工作代碼
class Initialization
{
static function main() {
new Initialization();
}
var myInt = 0;
var myString = "some string";
var myArray:Array<Int>; // Define the type, but don't initialize here
public function new() {
myArray = [1,2,3]; // Initialize in the constructor
trace(myInt);
trace(myString);
trace(myArray);
}
}
編輯:哦,你在HAXE 2.09。沒有內嵌初始化爲您服務;)
class Initialization
{
static function main() {
new Initialization();
}
// Define the type, but don't initialize here
var myInt:Int;
var myString;
var myArray:Array<Int>;
public function new() {
// Initialize in the constructor
myInt = 0;
myString = "some string";
myArray = [1,2,3];
trace(myInt);
trace(myString);
trace(myArray);
}
}
http://haxe.org/manual/basic_types#impact-on-cross-platformability – W55tKQbuRu28Q4xv