Dart 关键概念

Dart Feb 25, 2020
  • 一切皆为对象,所有对象都继承自 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, protectedprivate 。如果标识符以 下划线_ 开头,对于它的库来说就是私有的。更多详情,见 Libraries and visibility
  • 标识符以字符和下划线_开头,后续字符可以进行任意组合(外加数字)
  • Dart 既有表达式(具有值)也有语句(没有值),例如条件表达式 condition ? expr1 : expr2 有两个值。相比较 if-else 语句 却没有值。语句常常包含一个或多个表达式,而表达式不能直接包含语句
  • Dart 工具能反馈两类问题:警告warnings和错误errors。警告仅仅按时你的代码可能无法工作,但是并不妨碍程序执行。错误既可以在编译时也可以在运行时。编译时错误会彻底阻止代码执行,而运行时错误会在代码执行时产生异常

Nicholas X.

山穷水复疑无路,柳暗花明又一村