以内联方式初始化属性

您可以使用默认值以内联方式(即,在声明属性时)初始化属性,如下所示:

class Person {
  var age:Number = 50;
  var name:String = "John Doe";
}

以内联方式初始化属性时,赋值语句右侧的表达式必须为编译时常量。即,该表达式不能引用任何在运行时设置或定义的变量。编译时常量包括文本字符串、数字、布尔值、nullundefined,以及以下内置类的构造函数: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";  
  }
}

此规则仅适用于实例变量(被复制到类的各个实例中的变量),而不适用于类变量(属于类本身的变量)。有关这些变量类型的更多信息,请参见实例成员和类成员