Dart 关键概念
- 一切皆为对象,所有对象都继承自 Object 类,任何对象实例,数字,函数和 null 都是对象。
- Dart 是强类型,但类型注解也不是必须的,因为 dart 可以进行类型推导(和 Swift 相同)。数字可以推导出 int 类型。可以使用特殊类型
dynamic
明确说明无指定类型。 - Dart 支持泛型,例如:
List<int>
或者List<dynamic>
(这里 dynamic 类似于 Swift 中的 AnyClass 或者 ObjC 中的 id) - Dart 支持顶级函数(例如:
main()
),函数也可以绑定到一个类或者对象中(分别如:static
和实例方法) - 相似的,Dart 支持顶级变量,变量也可以绑定到类或者对象中(
static
和实例变量)。实例变量常常称为域或者属性。 - 不像
Java
,Dart 没有public
,protected
和private
。如果标识符以 下划线_
开头,对于它的库来说就是私有的。更多详情,见 Libraries and visibility - 标识符以
字符
和下划线_
开头,后续字符可以进行任意组合(外加数字) - Dart 既有表达式(具有值)也有语句(没有值),例如条件表达式
condition ? expr1 : expr2
有两个值。相比较if-else 语句
却没有值。语句常常包含一个或多个表达式,而表达式不能直接包含语句 - Dart 工具能反馈两类问题:警告
warnings
和错误errors
。警告仅仅按时你的代码可能无法工作,但是并不妨碍程序执行。错误既可以在编译时也可以在运行时。编译时错误会彻底阻止代码执行,而运行时错误会在代码执行时产生异常。