如何在 Haxe 中显式声明变量类型为对象?
How do I explicitly declare the type of the variable as object in Haxe?
如果我有一个名为 str
的变量,它是一个字符串,我可以执行以下操作
var str:String = "value";
但是,我不知道像这样的通用对象需要使用哪种类型
var myObj:???? = {
key1: value1,
key2: value2
}
我知道我不需要声明它,但我仍然想知道代替 ????
的正确文本是什么
Type.typeof()
说是 TObject
但我不能用那个。
这取决于密钥类型,但您可能需要这样的东西:
var myObj:{key1:String, key2:String} = {
key1: "foo",
key2: "bar"
};
如果您打算重用此结构,您应该考虑定义 Class 或 Typedef。否则,您不必提供类型。您可以只执行以下操作并让编译器分配自己的类型:
var myObj = {
key1: "foo",
key2: "bar"
};
如果使用 typedef,您会喜欢:
typedef FooBar = {
var foo : String;
var bar : String;
}
var myObj:FooBar = {
foo: "foo",
bar: "bar"
};
如果我有一个名为 str
的变量,它是一个字符串,我可以执行以下操作
var str:String = "value";
但是,我不知道像这样的通用对象需要使用哪种类型
var myObj:???? = {
key1: value1,
key2: value2
}
我知道我不需要声明它,但我仍然想知道代替 ????
的正确文本是什么Type.typeof()
说是 TObject
但我不能用那个。
这取决于密钥类型,但您可能需要这样的东西:
var myObj:{key1:String, key2:String} = {
key1: "foo",
key2: "bar"
};
如果您打算重用此结构,您应该考虑定义 Class 或 Typedef。否则,您不必提供类型。您可以只执行以下操作并让编译器分配自己的类型:
var myObj = {
key1: "foo",
key2: "bar"
};
如果使用 typedef,您会喜欢:
typedef FooBar = {
var foo : String;
var bar : String;
}
var myObj:FooBar = {
foo: "foo",
bar: "bar"
};