美文网首页
Dart学习笔记03-声明变量

Dart学习笔记03-声明变量

作者: zombie | 来源:发表于2020-08-07 00:29 被阅读0次

    1. 明确声明(Explicit)

    • 明确声明变量方式 ,格式:变量类型 变量名称 = 赋值
      代码示例如下:
     String name = 'wang';
     int age = 18;
     double height = 1.88;
     print('${name}, ${age}, ${height}');
     // 注意事项: 定义的变量可以修改值, 但是不能赋值其他类型
     String content = 'Hello Dart';
     content = 'Hello World'; // 正确的
     // content = 111; // 错误的, 将一个int值赋值给一个String变量
    

    2. 类型推导(Type Inference)

    • 类型推导声明变量的方式, 格式: var/dynamic/const/final 变量名称 = 赋值

    2.1. var的使用

    var的使用示例:

    var name = 'wang';
    // runtimeType用于获取变量当前的类型
    print(name.runtimeType); // String
    
    • 变量仅存储对象引用,这里的变量是name存储了一个String类型的对象引用。 wang是这个String类型对象的值,name变量的类型被推断为String

    2.2. dynamic的使用

      dynamic name = 'wang';
      print(name2.runtimeType); // String
      name = 18;
      print(name2.runtimeType); // int
    

    2.3 final const的使用

    • final和const都是用于定义常量的, 定义之后值都不可以修改
      final name = 'wang';
      name = 'james'; // 错误
    
      const age = 18;
      age = 20; // 错误
    
    • const在赋值时, 赋值的内容必须是在编译期间就确定下来的
    • final在赋值时, 可以动态获取 比如赋值一个函数
      代码示例如下:
    //  const是不可以赋值为DateTime.now()  
    const time = DateTime.now(); // 错误  因为要执行函数才能获取到值
    
    // final一旦被赋值后就有确定的结果, 不会再次赋值
    final time = DateTime.now();
    print(time);
    sleep(Duration(seconds: 5));
    print(time); // 两次time值相同
    

    ps: 实例变量可以是final 类型但不能是const类型。 必须在构造函数体执行之前初始化 final 实例变量 。在变量声明中,参数构造函数中或构造函数的初始化列表中进行初始化。

    相关文章

      网友评论

          本文标题:Dart学习笔记03-声明变量

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