Dart 2.5 已经发布了,其中包括两个主要预览新特性:机器学习(ML)驱动的代码补全和 dart:ffi 外部函数接口,用于直接从 Dart 调用 C 代码。Dart 2.5 还改进了对常量表达式的支持。具体如下:
ML Complete,按机器学习排序的代码补全
通过分析 GitHub 上 Dart 代码的大量语料库,训练基于给定上下文的可能出现的成员的模型来实现的,这个模型由 TensorFlow Lite 驱动,可以用来预测开发人员正要编辑的代码,这个新特性称为 ML Complete。
假设编写一个小程序,用来计算从当前时间到某一天的时间。使用 ML Complete,如下所示(第一张图)。首先,它能够根据变量名称为 now 自动提供 DateTime.Now () 补全 。接下来,定义变量名 tomorrow,使用 add (…) 方法。在非 ML Complete 中(第二张图),必须手动开始输入 Datetime 才会有提示补全,而且 add () 方法在补全提示的列表中的位置相对低。
ML Complete 可以在所有支持 Dart 的编辑器中使用