Dart 是一种面向对象的语言,拥有类和基于 mixin 的继承。每个对象都是一个类的实例,并且除了 Null
之外的所有类都派生自 Object
。基于 mixin 的继承意味着尽管每个类(除了顶级类 Object?
)都只有一个超类,但一个类的代码体可以在多个类层次结构中被复用。扩展方法是一种在不修改类或创建子类的情况下为类添加功能的方式。类修饰符允许你控制库如何对一个类进行子类型化。
Dart 是一种面向对象的语言,拥有类和基于 mixin 的继承。每个对象都是一个类的实例,并且除了 Null
之外的所有类都派生自 Object
。基于 mixin 的继承意味着尽管每个类(除了顶级类 Object?
)都只有一个超类,但一个类的代码体可以在多个类层次结构中被复用。扩展方法是一种在不修改类或创建子类的情况下为类添加功能的方式。类修饰符允许你控制库如何对一个类进行子类型化。
如果您查看基础的列表类型 List
的 API 文档,您会看到其类型实际上是 List<E>
。<...>
符号将 List
标记为一种泛型(或参数化)类型——即一个拥有形式类型参数的类型。按照约定,大多数类型变量都使用单字母名称,例如 E、T、S、K 和 V。
Dart 语言是类型安全的:它结合了静态类型检查和运行时检查,以确保变量的值始终与其静态类型相匹配,这有时被称为类型健全性(sound typing)。尽管类型是强制性的,但由于有类型推断,类型注解是可选的。
静态类型检查的一个好处是能够使用 Dart 的静态分析器在编译时发现错误。
Dart 语言为以下类型提供了特殊支持:
int
, double
)String
)bool
)value1
, value2
))Function
)List
,也被称为数组)Set
)Map
)Runes
;通常被 characters
API 替代)Symbol
)null
值(Null
)这种支持包括使用字面量创建对象的能力。例如,'this is a string'
是一个字符串字面量,而 true
是一个布尔字面量。