美文网首页
变量 (Variables)

变量 (Variables)

作者: 黑色的雨天 | 来源:发表于2018-10-28 19:38 被阅读0次

    下面是一个创建变量并初始化它的例子:

    var name = 'Bob';
    

    变量存储引用。调用的变量name包含对String值为“Bob” 对象的引用。

    name变量的类型被推断为String,但是可以通过指定类型来更改。如果对象不限于单一类型,请按照设计指南指定Objectdynamic类型。

    dynamic name = 'Bob';
    

    另一种选择是显式声明可以推断的类型:

    String name = 'Bob';
    

    注意:本页面遵循样式指南建议对局部变量使用var而不是类型注释的。

    Default value

    未初始化的变量的初始值为null。即使是具有数字类型的变量最初也是null,因为数字就像Dart中的其他所有都是对象。

    int lineCount;
    assert(lineCount == null);
    

    注意:在生产代码中assert()调用被忽略。在开发期间,除非 condition 为真,否则assert(condition)抛出异常。

    Final and const

    如果您从不打算更改变量,请使用finalconst代替var或替代类型。final变量只能设置一次,const变量是编译时常量。const变量是隐式finalfinal的顶级或类变量在第一次使用时被初始化。

    注意:实例变量可以是final,但不能是const。必须在构造函数主体开始之前进行初始化final实例变量——在变量声明,构造函数参数或者构造函数的初始化器列表中。

    下面是一个创建和设置final变量的示例:

    final name = 'Bob'; // Without a type annotation
    final String nickname = 'Bobby';
    

    不能更改final变量的值:

    name = 'Alice'; // Error: a final variable can only be set once.
    

    对于您想要成为编译时常量的变量使用const。如果const变量位于类级别,则将其标记为static const。在声明变量时,将该值设置为编译时常量,例如数字或字符串字面量、const变量或对常量数字进行算术运算的结果:

    const bar = 1000000; // Unit of pressure (dynes/cm2)
    const double atm = 1.01325 * bar; // Standard atmosphere
    

    const关键字不仅仅用于声明常量变量。您还可以使用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以具有常量值。

    var foo = const [];
    final bar = const [];
    const baz = []; // Equivalent to `const []`
    

    可以从const声明的初始化表达式中省略const,比如上面的baz

    可以更改非final的,非const变量的值,即使它曾经有一个const值:

    foo = [1, 2, 3]; // Was const []
    

    不能改变const变量的值:

    baz = [42]; // Error: Constant variables can't be assigned a value.
    

    有关使用const创建常量值的更多信息,请参见ListsMapsClasses

    相关文章

      网友评论

          本文标题:变量 (Variables)

          本文链接:https://www.haomeiwen.com/subject/bwjmtqtx.html