美文网首页
Flutter 从0到入门 ④ Dart 语言-2(mac)

Flutter 从0到入门 ④ Dart 语言-2(mac)

作者: Bc_wh1te_Le1 | 来源:发表于2019-03-26 21:14 被阅读0次

    DartPad(在线Dart编译器)

    Variables(变量)

    声明变量并赋值

    var name = "BcwhiteLei"
    //变量是一个引用。上面名字为name的变量引用了 一个内容为 “BcwhiteLei” 的 String 对象。
    

    Default value(默认值)

    没有初始化的变量自动获取一个默认值为null,上篇的重要规则说过所有类型都是对象类型并集成于Object类。所以哪怕是数字类型的变量没有初始化也是null,而不是类似于Objective-C等语言,默认数字类型有默认值。

    int lineCount;
    assert(lineCount == null);
    // Variables (even if they will be numbers) are initially null.
    

    注意: 在生产模式assert()语句被忽略了。在检查模式assert(condition)会执行,如果条件不为 true 则会抛出一个异常。
    //同样的这里和Objective-C也不一样,OC的assert是debug和release都生效。

    Optional types(可选的类型)

    在声明变量的时候,你可以选择加上具体 类型:

    String name = 'BcwhiteLei';
    

    添加类型可以更加清晰的表达你的意图。 IDE 编译器等工具有可以使用类型来更好的帮助你, 可以提供代码补全、提前发现 bug 等功能。

    Final and const

    如果你以后不打算修改一个变量,使用final或者const。 一个 final 变量只能赋值一次;一个 const 变量是编译时常量。 (Const 变量同时也是 final 变量。) 顶级的 final 变量或者类中的 final 变量在 第一次使用的时候初始化。

    注意: 实例变量可以为final但是不能是const

    实例:

    final name = "BcwhiteLei";
    final String name = "BcwhiteLei";
    //name = "Baihaotian";// Uncommenting this causes an error 
    

    const变量为编译时常量。 如果 const 变量在类中,请定义为static const。 可以直接定义 const 和其值,也 可以定义一个 const 变量使用其他 const 变量的值来初始化其值。

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

    const关键字不仅仅只用来定义常量。又可以用来创建不变的值,还能定义构造函数为const类型的,这种类型的构造函数创建的对象是不可改变的。任何变量都可以有一个不变的值。

    // Note: [] creates an empty list. 
    // const [] creates an empty, immutable list (EIA).
    //[] 构建一个空数组
    //const [] 构建一个空的不可变的数组 称为EIA
    var foo = const [];   // foo is currently an EIA. foo现在是一个空不可变数组EIA
    final bar = const []; // bar will always be an EIA. bar永远是一个空不可变数组EIA
    const baz = const []; // baz is a compile-time constant EIA. baz是一个编译时常量
    
    // You can change the value of a non-final, non-const variable,你可以改变一个不是final 不是const修饰的变量
    // even if it used to have a const value.尽管他有一个常量值
    foo = []; 
    
    // You can't change the value of a final or const variable.你不能修改一个被const或者final修饰的变量
    // bar = []; // Unhandled exception.
    // baz = []; // Unhandled exception.
    
    

    相关文章

      网友评论

          本文标题:Flutter 从0到入门 ④ Dart 语言-2(mac)

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