Dart重要概念及变量
Dart概览
参考文档:https://dart.cn/guides/language/language-tour
重要概念
1、所有变量引用的都是 对象,每个对象都是一个 类 的实例。数字、函数以及 null
都是对象。除去 null
以外(如果你开启了 空安全), 所有的类都继承于 Object
类。
2、尽管 Dart 是强类型语言,但是在声明变量时指定类型是可选的,因为 Dart 可以进行类型推断。
3、如果开启了 空安全,变量在未声明为可空类型时不能为 null
。你可以通过在类型后加上问号 (?
) 将类型声明为可空。
4、如果 明确知道 一个表达式不会为空,但 Dart 不这么认为时,可以在表达式后添加 !
来断言表达式不为空(为空时将抛出异常)。
5、如果想要显式地声明允许任意类型,使用 Object?
(如果你 开启了空安全)、 Object
或者 特殊类型 dynamic
将检查延迟到运行时进行。
6、Dart 支持泛型,比如 List<int>
(表示一组由 int 对象组成的列表)或 List<Object>
(表示一组由任何类型对象组成的列表)。
7、Dart 支持顶级函数(例如 main
方法),同时还支持定义属于类或对象的函数(即 静态 和 实例方法)。还可以在函数中定义函数(嵌套 或 局部函数)。
8、Dart 支持顶级 变量,以及定义属于类或对象的变量(静态和实例变量)。实例变量有时称之为域或属性。
9、Dart 没有类似于 Java 那样的 public
、protected
和 private
成员访问限定符。如果一个标识符以下划线 (_
) 开头则表示该标识符在库内是私有的。
10、标识符 可以以字母或者下划线 (_
) 开头,其后可跟字符和数字的组合。
变量
变量的定义
1 | var name = 'zs'; |
在 Dart 中,未初始化以及可空类型的变量拥有一个默认的初始值
null
。
assert()
的调用将会在生产环境的代码中被忽略掉。在开发过程中,assert(*condition*)
将会在 条件判断 为 false 时抛出一个异常。详情请查阅 Assert。
1 | int? lineCount; |
late变量
1 | late String description; |
Final和Const
如果你不想更改一个变量,可以使用关键字
final
或者const
修饰变量,这两个关键字可以替代var
关键字或者加在一个具体的类型前。一个 final 变量只可以被赋值一次;一个 const 变量是一个编译时常量 (const 变量同时也是 final 的)。使用关键字
const
修饰变量表示该变量为 编译时常量。如果使用 const 修饰类中的变量,则必须加上 static 关键字,即static const