标签:技术 来替 bool string 修改 list ima 语法 类型
var a; print(a); a = 10; print(a); a = ‘Hello Dart‘; print(a);
输出:
null 10 Hello Dart
var : 【编译期】确定【变量类型】 dynamic : 【运行期】确定【变量类型】 bool int double String List Map
注意:
1.所有未初始化的变量的初始值为null。这是因为Dart将所有值都视为对象
2.var实际上是编译期抛给我们的“语法糖”,一旦被编译,
编译期会自动匹配var 变量的实际类型,并用实际类型来替换该变量的申明,
这看上去就好像我们在编码的时候是用实际类型进行申明的。
而dynamic被编译后,实际是一个 object类型,
只不过编译器会对dynamic类型进行特殊处理,
让它在编译期间不进行任何的类型检查,而是将类型检查放到了运行期。
main() { var a = 10; print(a);//10 // a = "dart"; //写法错误 dynamic b = 20; print(b); //20 b = "JavaScript"; //正确 print(b); //JavaScript var list = new List<dynamic>(); list.add(1); list.add("hello"); print(list);//[1, hello] }
final :【运行期】确定【常量值】 const :【编译期】确定【常量值】
注意: 1.final必须初始化,只能赋值一次,且不能修改值,赋值可以是常量也可以是变量。 const必须初始化,只能赋值一次,且不能修改值,赋值必须是常量。 2.const必须根据可在编译时计算的数据创建它们。 const对象无法访问运行时需要计算的任何内容。 1+2是一个合法的const表达式,但new DateTime.now()不是(合法的const表达式) 3.使用const关键字声明的变量是隐式final的。 可以把const 常量赋给 final 变量,反过来不可以。 4.final和const可以与变量的数据类型一起使用,也可以与 var 关键字一起使用。
标签:技术 来替 bool string 修改 list ima 语法 类型
原文地址:https://www.cnblogs.com/jukaiit/p/12234921.html