美文网首页Dart
Dart-变量与常量

Dart-变量与常量

作者: 哎呀啊噢 | 来源:发表于2019-05-09 15:23 被阅读0次

    变量是‘存储器中的命名空间’,用于存储值.变量名称称为标识符,标识符命名规则:

    • 标识符不能是关键字
    • 标识符可以包含数字和字母
    • 标识符不能包含空格和特殊字符,但下划线(_)和美元($)符号除外
    • 变量名称不能以数字开头;
    语法:
    • 使用var声明变量可以赋值不同类型的值
    • 没有赋初值的变量都会默认为null
    • 使用final声明一个只能赋值一个变量
    • 使用const声明一个常量
    • 使用const声明必须是编译时的常量
    代码示例:
    //变量
    
      //赋值不同类型的值
      var a;
      print(a);//result:null
    
      a = 20;//运行时确定的变量
      print(a);//result:20
    
      a = 'dart';
      print(a);//result:dart
    
      final b = 20;
    
    //  b = 50;//final声明一个只能赋值一次变量
    
    //常量
    
    
      const c = 20;//编译期确定的常量
    //  c = 50;
      print(c);
    
      var list = const[1,2,3,4];
      var obj = const Object();
    
    dynamic关键字
    没有声明明确的类型,动态类型;
    
    final和const区别
    • final:表示单一赋值,final变量或字段必须初始化,一旦初始化,就不能改变final变的值,final修饰变量;
    • const:const修饰值,可以在创建集合使用,构造对象使用,意味着对象的整个深度状态可以在编译时完全确定,并且对象被冻结完全不可变;使用const关键字声明的变量是隐式的final,只有const变量可用于计算编译时常量.编译时常量是常量,其值在编译时确定.
    dynamic、Object、var
    • var和dynamic完全是俩个概念,不应该放在一起比较,var实际是编译器抛出的语法糖,一旦被编译,编译器就会自动匹配var变量的实际类型,并用实际类型替换该变量的声明,等同于我们在编码时使用了实际类型声明,而dynamic被编译成Object类型,编译器编译时不会对dynamic进行类型检查
    • dynamic类型再编译后是一个object类型,和object的区别?
    • 编译时类型检查
    • 类型转换

    相关文章

      网友评论

        本文标题:Dart-变量与常量

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