• Dart数据类型


    数据类型 声明示例
    String

    String a = "你好";

    var a = "你好";

    int

    int b = 1;

    var b = 1;

    double

    double c = 3.14;

    var c = 3.14;

    bool bool d = true;
    List

    var e = ["1","2","3"]

    List e = new List();

    var e = new List<String>();

    Map

    var person = {

    "name":"张三",

    "age":20

    };

    var f = new Map();

    • var声明与类型声明有什么区别?

    Dart是比较奇怪,它综合了静态语言与动态语言的特点。

    例如,dart可以和python、JavaScript等动态语言一样,可以不预先定义变量类型,直接用var声明一个变量,dart会自动识别出该变量的类型。

    但是,假如你用var来赋值a为字符串,那么变量a一直只能是赋值为字符串类型。这与python和JavaScript是不同的。

    所以Dart还是属于静态语言(强类型语言)。

    • dart有两种方式声明常量,final与const,这两者有什么不同?

    平常使用时,用法好像完全一样,实际上还有区别的。

    const PI = 3.14159;
    print(PI);
    
    final PI = 3.14159;
    print(PI);

    但是某些使用时会有问题,例如:

    final a = new DateTime.now();
    print(a)  // 正常打印
    
    const a = new DateTime.now();  // 会报错

    是因为const是编译时常量,在编译期间已经确定了下来。

    最重要的是它是运行时常量,并且final是惰性初始化,在执行时才进行初始化。

    还有一个区别需要注意:

    虽然const与final修饰的常量都不可以继续被赋值。但是final修饰的常量,这个常量包含这集合,那么这个集合还是可变的。而const修饰的常量,即使这个常量包含着集合,由于const传递了不可变性,这个集合是不能进行变化的。

    final list0 = [1,2,3];
    list0[0] = 4;
    print(list0);  // [4,2,3]
    
    const list1 = [1,2,3];
    list1[0] = 4;  // 报错
    print(list1);
  • 相关阅读:
    同一部电脑配两个git账号
    在span中,让里面的span垂直居中用这个
    三张图搞懂JavaScript的原型对象与原型链
    vue2.0 生命周期
    js中__proto__和prototype的区别和关系?
    【转】css 包含块
    【转】BFC(block formating context)块级格式化上下文
    javascript中函数的5个高级技巧
    toString() 和 valueOf()
    桌面图标列表排列小工具
  • 原文地址:https://www.cnblogs.com/chichung/p/11967910.html
Copyright © 2020-2023  润新知