搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > Flutter那些事 > Dart 2.5 正式发布了,AI机器学习终于派上用场了

Dart 2.5 正式发布了,AI机器学习终于派上用场了

Flutter那些事 2019-11-08
                            

前言

                 

在谷歌开发者大会(GDD)推出 Flutter1.9 的同时,紧接着又来了一个好消息:谷歌推出 Dart2.5正式版 。本次版本更新主要有这些功能:ML Complete人工智能代码补全;Dart使用dart:ffi库调用C语言代码。下面就详细介绍一下这次更新的一些内容。喜欢的话,点一下文末的 “在看”,感谢各位的支持。


1

ML Complete 人工智能代码补全


ML Complete: 它是基于机器学习的代码补全的一个全新的功能。它是Flutter团队推出的Flutter开发工具中的第四大法宝,其中前面三个分别是:热重载、可自定义静态分析、Dart DevTools


ML Complete 是基于TensorFlow Lite模型训练出来的,它的主要作用是提供高效的代码补全功能,让开发者在编码时能够根据使用习惯和代码的频率等综合评判给出可能会出现的代码,然后给出候选项提示,从而帮助开发者提高开发效率。有了它你再也不用去网上搜索代码片段了,可以说真的是太省心了。


支持的工具和分支名称


ML Complete 目前还是刚推出的预览版,它是Dart Analyzer内置的,能够用在支持Dart的编辑器中,包括常用的:Androd Studio、Intellij IDEA、VSCode,以及其它编辑器。


该功能目前处于预览版本,还不稳定,请使用 Flutter dev 分支,以及 Dart dev 分支进行尝试使用,注意:请勿在生产环境使用它。


具体配置


VSCode:

输入 Ctrl+Shift+P 快捷键,输入 preferences:open user settings,回车,然后输入 dart,找到 settings.json 文件进行编辑。

输入以下两个配置:


"dart.analyzerAdditionalArgs": ["--enable-completion-model"]

意思是:开启ML Complete代码补全。 

 

"editor.suggestSelection": "first"

这可确保代码显示第一个可用的代码补全(代码在尝试记住过去代码补全时具有不同的默认值)。

具体的配置位置请看下图:

Dart 2.5 正式发布了,AI机器学习终于派上用场了


Android Studio或 Intellij IDEA

双击Shift 键,输入 Registry 

然后找到 dart.server.additional.arguments 选项,在后面的空格处输入: --enable-completion-model

具体的配置位置请看下图:


Dart 2.5 正式发布了,AI机器学习终于派上用场了

使用示范

具体示范如下图所示:


Dart 2.5 正式发布了,AI机器学习终于派上用场了


Dart 2.5 正式发布了,AI机器学习终于派上用场了

2

Dart开始支持和C代码的交互


Flutter以前版本如果要调用C代码,需要通过原生平台调用,然后写插件返回给Flutter这边,Flutter再传值给原生。这个过程是比较麻烦的。现在有了 dart:ffi 这个库,就可以使用Dart语言很方便的调用C代码,以及跨平台的C代码的库(如:SQLite)。可以说对于Flutter开发者来说也是相当的有好处的。

支持的版本号

Dart2.6预览版开始支持Dart调用C代码,(注:我尝试了一下,Dart2.5稳定版还不支持),推荐使用 Flutter master分支 Dart dev分支


【注:因为Flutter1.9支持的是 Dart2.5,所以Dart调用C的功能目前可能还不支持,请去Dart官网单独下载Dart SDK进行安装,然后配置环境变量。这两个Dart SDK是单独存在的,互不影响。】

作用

使用 dart:ffi 可以调用基于C的系统API,同时也可以调用基于C的框架和组件,同时你还可以自定义进行封装,然后编写你自己的代码生成器有关代码或工具。在Mac或者linux系统运行基本问题不大,但是Windows运行可能目前存在有一些问题,还有待完善。

相关文档

★ Dart与C交互文档:

https://dart.dev/guides/libraries/c-interop


★ Github示例代码:

https://github.com/dart-lang/samples/tree/master/ffi


★ dart:ffi库的API:

https://api.dart.dev/dev/2.6.0-dev.0.0/dart-ffi/dart-ffi-library.html



Dart 2.5 正式发布了,AI机器学习终于派上用场了

3

对常量表达式的支持


Dart 长期以来一直支持创建 const 变量和值,由于它们在编译时为常量,因此具有非常好的性能。从 Dart 2.5 开始支持更多定义常量表达式的方法,包括类型转换以及 Dart 2.3 中提供的新控制流和集合扩展功能

类型检查

类型检查格式:a is b

const Object i = 3; 

const set = {if (list is List ) ...list}; 

强制转换

 使用强转,格式:a as b

const Object i = 3; 

const list = [i as int]; 

集合if以及集合for

集合if的使用:

const intListData = [1, 2, 3];  

const setDatas = {if (intListData is List ) ...intListData};

print(setDatas.toString());


集合for的使用:

const listOfInts = [1, 2, 3];  

var listOfStrings = ['#0', for (var i in listOfInts) '#$i']; print(listOfStrings[1]);

扩展运算符...和...?

Dart支持使用 ...运算符 把集合所有元素插入到新集合

const intListData = [1, 2, 3];  

const setDatas = {if (intListData is List ) ...intListData};

print(setDatas.toString());


Dart 2.5 正式发布了,AI机器学习终于派上用场了

【干货好文】





Dart 2.5 正式发布了,AI机器学习终于派上用场了


在这里也欢迎各位多提意见。如果大家有什么意见或建议,欢迎在公众号里面留言,感谢大家的支持。

Dart 2.5 正式发布了,AI机器学习终于派上用场了

长按二维码关注,随时获取技术干货! 


好看你就

点点

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《Dart 2.5 正式发布了,AI机器学习终于派上用场了》的版权归原作者「Flutter那些事」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注Flutter那些事微信公众号

Flutter那些事微信公众号:gh_92768c4641c4

Flutter那些事

手机扫描上方二维码即可关注Flutter那些事微信公众号

Flutter那些事最新文章

精品公众号随机推荐

下一篇 >>

css盒子模型3