在 Haxe 中如何创建公共常量?我只需要类似 AS3 中的 const
:
public class Hello
{
public static const HEY:String = "hey";
}
在 Haxe 中如何创建公共常量?我只需要类似 AS3 中的 const
:
public class Hello
{
public static const HEY:String = "hey";
}
static
和 inline
修饰符。class Main {
public static inline var Constant = 1;
static function main() {
trace(Constant);
trace(Test.Constant);
}
}
enum abstract
。枚举抽象的值是隐式的 static
和 inline
。
Int
、Float
、Bool
)以及String
可以作为inline
,对于其他类型,将会出现以下错误:
内联变量初始化必须是常量值
幸运的是,Haxe 4引入了final
关键字,可以在这种情况下发挥作用:
public static final Regex = ~/regex/;
final
仅防止重新赋值,它并不使类型是不可变的。因此,仍然可以向类似 static final Values = [1, 2, 3];
的内容中添加或删除值。haxe.ds.ReadOnlyArray
,它允许使用“常量”列表(假设您不会使用强制转换或反射绕过它)。public static final Values:haxe.ds.ReadOnlyArray<Int> = [1, 2, 3];
Values = []; // Cannot access field or identifier Values for writing
Values.push(0); // haxe.ds.ReadOnlyArray<Int> has no field push
ReadOnlyArray<T>
只是一个抽象类型,通过执行以下操作创建一个只读的“视图”:
您可以在此处查看其实现方式。
public var MAX_COUNT(default, never):Int = 100;