乐趣区

关于flutter:Dart中声明变量的方式和区别

 在 Dart 中所有未初始化的变量默认值均为 null。

变量:

var:var 申明的变量能够是任何数据类型,动静指定。var 变量一旦赋值,类型便会确定,则不能再扭转其类型。var 变量编译时须要确定变量类型。dynamic:dynamic 申明的变量能够是任何数据类型,动静指定。dynamic 申明的变量能够在前期扭转赋值类型。dynamic 变量运行时须要查看变量类型

Object:Object 是 Dart 所有对象的根基类,也就是说所有类型都是 Object 的子类 (包含 Function 和 Null),所以任何类型的数据都能够赋值给 Object 申明的对象。

常量:

final:变量类型能够省略
应用 final 申明的变量,它只能赋值一次,赋值能够是常量也能够是变量。final 润饰的是一个最终的变量,不能再次赋值,否则会报错。也能够先申明再次赋值,然而只能赋值一次。运行时常量;const:变量类型能够省略
const 润饰常量,申明的时候就得赋值,只能赋值一次,赋值必须是常量。不能批改,不能再次赋值。编译时常量,必须定义的时候初始化;区别:能够把 const 常量赋给 final 变量,反过来不能够。const 变量 是隐式 final 的类型.

题外:

late:显式申明一个非空的变量,但能够不初始化。空平安:定义变量时咱们能够指定变量是可空还是不可空;Dart 空平安反对基于以下三条外围准则
  默认不可空:除非您把变量显式生命为可空,否则它肯定是非空类型;渐进迁徙:您能够自在地抉择何时进行迁徙,多少代码会进行迁徙;齐全牢靠:Dart 的空平安是十分牢靠的,意味着编译期间蕴含了很多优化;! 空值断言操作符
? 示意变量是可空类型
?. 右边如果为空返回 null,否则返回左边的值,该运算符罕用于避免空异样
?? 右边如果为空返回左边的值,否则不解决,该运算符罕用于设置默认值
退出移动版