您可以使用默认值以内联方式(即,在声明属性时)初始化属性,如下所示:
class Person { var age:Number = 50; var name:String = "John Doe"; }
以内联方式初始化属性时,赋值语句右侧的表达式必须为编译时常量。即,该表达式不能引用任何在运行时设置或定义的变量。编译时常量包括文本字符串、数字、布尔值、null
和 undefined
,以及以下内置类的构造函数:Array、Boolean、Number、Object 和 String。
例如,以下类定义以内联方式初始化几个属性:
class CompileTimeTest { var foo:String = "my foo"; // 没问题 var bar:Number = 5; // 没问题 var bool:Boolean = true; // 没问题 var name:String = new String("Jane"); // 没问题 var who:String = foo; // 没问题,因为“foo”是常量 var whee:String = myFunc(); // 错误!不是编译时常量表达式 var lala:Number = whee; // 错误!不是编译时常量表达式 var star:Number = bar + 25; // 没问题,“bar”和“25”都是常量 function myFunc() { return "Hello world"; } }
此规则仅适用于实例变量(被复制到类的各个实例中的变量),而不适用于类变量(属于类本身的变量)。有关这些变量类型的更多信息,请参见实例成员和类成员。