Dart 2.5 公布,加入机器学习自动补全和C语言交互接口

2019.09.10,随着Flutter 1.9的发布,最新的版本的 Dart 2.5 也随之公布,并引入了两大令人兴奋的新特性:

  • 引入机器学习自动代码补全ML Complete),使用 TensorFlow Lite 分析开源 Dart 代码而得到代码模型,根据上下文自动预测用户将要输入的内容

    dart

  • 标准库新加入 dart:ffi (foreign function interface) 库,用于和C语言直接交互。通过 dart:ffi 库,Dart 代码可以直接与C语言编写的操作系统接口或库进行通讯,比如:调用 TensorFlow LiteSQLite机器学习自动补全 功能就是使用 dart:ffi 实现的。

    import 'dart:ffi' as ffi;
    
    // FFI signature of the hello_world C function
    typedef hello_world_func = ffi.Void Function();
    // Dart type definition for calling the C foreign function
    typedef HelloWorld = void Function();
    
    main() {
      // Open the dynamic library
      final dylib = ffi.DynamicLibrary.open('hello_world.dylib');
      // Look up the C function 'hello_world'
      final HelloWorld hello = dylib
          .lookup<ffi.NativeFunction<hello_world_func>>('hello_world')
          .asFunction();
      // Call the function
      hello();
    }
    

需要注意的是,两大新功能都还是预览版状态,性能和稳定性还有待改善,详情请查看官方博文: