随着Flutter 2.0的发布,Google还使Dart 2.12稳定了下来。如果您不知道,Dart是Flutter使用的语言。它是一种基于TypeScript的语言,但是还增加了一些语言功能,包括我将要介绍的功能。空安全是一项非常出色的语言功能。它迫使您考虑变量是否会为空,并显式处理潜在的空情况,同时还可以保证特定的变量永远不会为空。

在Dart 2.12中,现在完全支持null安全,其语法类似于Swift和Kotlin。甚至还有智能广播,如果Dart确信正常可为空的变量不能为null,它将隐式将其强制转换为非可为空的形式。
由于null安全是一项(非常)重大的更改,因此该功能是可选的。如果您更新到Dart 2.12,则编译不会中断,也不必花费数小时向所有内容添加可空性提示。如果您的项目还不是null安全的,那么您甚至可以使用null安全的依赖项。
一旦确定要迁移,就可以使用内置的迁移工具(dart migration )和/或迁移指南进行所有设置。
此外,尽管Dart 2.12中包含了零安全,但是如果您创建一个新的Flutter项目,则不会立即启用零安全。您需要手动启用它。新的Dart项目将启用null安全性。
外部功能接口
尽管Dart(和Flutter的重点)是完全跨平台的兼容性,但是仍然有些事情需要本地完成。为了简化本机操作,Dart具有外部功能接口或FFI。FFI使您可以与Dart中的C代码进行交互,而不必诉诸基于字符串的怪异API调用或其他笨拙的互操作性方法。

