Flutter 的下一步, Dart 3 重大变更即将在 2023 到来

这篇具有很好参考价值的文章主要介绍了Flutter 的下一步, Dart 3 重大变更即将在 2023 到来。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在过去的四年里 Dart 已经发展成为一门高效、可移植的现代化语言,而下一个版本 Dart 3 将达到可靠的 null 安全语言的最后一步。

作为 null safety 的最后一步,本次将删除几个历史 Dart 和 SDK artifacts,包括删除对 running without sound null safety 的支持

如今许多现代编程语言都支持 null safety ,比如 Swift、C# 和 Kotlin 等语言,可以在其中将变量声明为非空永远不能保持空值)或可为(可以保存一个值或 null)的情况,这些类型系统会和静态分析结合使用,以检测将 null 赋值给不可为 null 的变量。

同样,Dart 语言中的 null 安全支持默认情况下使变量不可为 null,并且仅在显式声明时才允许 null。

在 Dart 3 中,所有 Dart 代码都将使用健全的空安全

自从 Dart 2.12 引入空安全到现在已经三年了,在此期间开发者可以在没有 null safety 的情况下运行,也可以在具有部分 null safety 的混合模式下运行,也可以在具有完全健全的 null safety 的情况下运行。

当 100% 的代码(包括所有依赖项)已迁移到 null safety 时,就会出现完全可靠的空安全支持,在此期间 Dart 开发人员有时间一步一步地迁移现有代码,但是支持多种模式会增加开销和复杂性。

首先,Dart 开发人员需要了解以上三种模式,每当阅读一段 Dart 代码时,就必须检查语言版本以查看类型是否默认为非空、默认可为空或它们的某种组合。

其次,在我们的编译器和运行时支持所有三种模式会减慢 Dart SDK 的发展速度,这种支持增加了添加新功能的成本和复杂性

从在 Dart 3 开始,正如之前 2.18 里提前宣布的那样,sound null safety 将是唯一受支持的模式,**小于 2.12 的 SDK 约束的 Pubspec 文件将在 Dart 3 及更高版本中停止解析。

当开发者将依赖约束设置为小于 2.12(例如// @dart=2.9)时,任何包含语言标记的源代码都将失效。

根据目前的观测,我们相信此时大约 85% 的 flutter run 执行都使用了空安全,如果你还在剩余的 15% 中,那请在 Dart 3 发布之前迁移,预计在 2023 年年中左右

Breaking 和 API 更改

除了 null 安全更改之外,Dart 3 还进行了一些其他更改,以删除 Dart 和核心库 API 中的一些历史 artifacts,这些更改包括:

  • 删除已停用的核心库 API ( #49529 )
  • 删除默认参数值的历史语法 ( #2357 )
  • 要求明确的 tear-offs ( ##2399 )。

这些更改对迁移到使用 null 安全的代码的影响很小,当第一个 Dart 3 alpha 版本发布时,开发者可以快速测试这些较小的 Breaking。

Dart 3 的新特性和功能

Dart 3 也有望包含许多新功能,包括改进与其他编程语言的交互能力和新的语言特性, 这部分内容将在2023 年 1 月 25 日的 Flutter Forward 中详细讨论。

例如有被称为 patterns 的语言特性,patterns 让 Dart 语言更具表现力,增加了对更多结构化数据的支持,并使用代数数据类型实现了更实用的风格。

以下代码显示了在一个函数上使用多个返回值的示例,以及将这些返回值解构为单个变量的能力:

// A function which returns a record -- in this case a pair of two doubles:
(double x, double y) getLocation(String name) {
 if (name == 'Aarhus') {
   return (56.1629, 10.2039);
} else {
  ...
}
}
​
// Deconstructing the returned record back into individual variables:
void main(List<String> arguments) {
 final (lat, long) = getLocation('Aarhus');
 print('Current location: $lat, $long');
}
​
// You can also define a hierarchy of classes, and then pattern match on those:
sealed class Shape {
 double calculateArea();
}
​
class Square implements Shape {
 final double length;
 Square(this.length);
 double calculateArea() => length * length;
}
​
class Circle implements Shape {
 final double radius;
...
}
​
double calculateArea(Shape shape) => switch (shape) {
 Square(length: var l) => l * l,
 Circle(radius: var r) => math.pi * r * r
};

Beyond Dart 3

目前除了 Dart 3 还有大量并行的潜在的新功能在处理,首先,正如去年提到的, Dart 团队正在努力支持将 Dart 代码编译为 WebAssembly ( Wasm ),Wasm 能让 Flutter Web 在浏览器中作为完整的原生代码运行。

这是一项艰巨的任务,除了更新 Dart 编译器之外还需要很多额外的工作。它需要与 W3C 和浏览器供应商合作,通过 WasmGC 扩展在 Wasm 中添加对垃圾收集语言的支持。

其次 Dart 团队正在研究 macros 启用静态元编程,这种强大的机制允许一段代码(宏)在程序编译期间修改和扩展程序的源代码,例如可以减少反序列化 JSON 或创建数据类所需的样板文件

Dart 3 发布路线

接下来,Dart 3 将在一系列里程碑中陆续推出,目前的期望围绕这些日期

  • 2023 年 1 月/2 月左右:Dart 3 alpha 发布,它将专注于启用早期的 Dart 3 兼容性测试,目标是让大家能够运行静态分析 ( dart analyze/ flutter analyze),理论上通过 Dart 3 alpha 静态分析的应用或包都可以支持 Dart 3 稳定版。
  • 2023 年 3 月/4 月左右:Dart 3 测试版发布,此版本预览了 Dart 3 中的新功能,开发者可以使用它来试验新功能并就问题或改进建议提供反馈。
  • 2023 年年中左右:Dart 3 稳定版发布,健全的空安全将成为唯一支持的模式。

总结

Dart 3 版本计划于 2023 年年中左右发布,它将包含几项重大更改,其中主要是在没有健全的空安全的情况下你的代码将停止运行,计划在 2023 年 1 月或 2 月左右准备好 Dart 3 alpha 版本,可以将其用于 Dart 3 兼容性测试

在此期间你可以准备:

  • 完成任何未完成的空安全迁移
  • 验证代码未使用任何已弃用的 API
  • 运行 dart fix

Dart 3 还将包含几个新的强大功能,例如 patterns ,计划是希望在春季发布 Dart 3 beta 版,展示所有新功能,敬请期待~

作者:恋猫de小郭
链接:https://juejin.cn/post/7174985128799076389

最后

如果想要成为架构师或想突破20~30K薪资范畴,那就不要局限在编码,业务,要会选型、扩展,提升编程思维。此外,良好的职业规划也很重要,学习的习惯很重要,但是最重要的还是要能持之以恒,任何不能坚持落实的计划都是空谈。
Flutter 的下一步, Dart 3 重大变更即将在 2023 到来
如果你没有方向,这里给大家分享一套由阿里高级架构师编写的《Android八大模块进阶笔记》,帮大家将杂乱、零散、碎片化的知识进行体系化的整理,让大家系统而高效地掌握Android开发的各个知识点。

Flutter 的下一步, Dart 3 重大变更即将在 2023 到来
相对于我们平时看的碎片化内容,这份笔记的知识点更系统化,更容易理解和记忆,是严格按照知识体系编排的。

全套视频资料:

一、面试合集
Flutter 的下一步, Dart 3 重大变更即将在 2023 到来
二、源码解析合集

Flutter 的下一步, Dart 3 重大变更即将在 2023 到来
三、开源框架合集

Flutter 的下一步, Dart 3 重大变更即将在 2023 到来
欢迎大家一键三连支持,若需要文中资料,直接点击文末CSDN官方认证微信卡片免费领取↓↓↓文章来源地址https://www.toymoban.com/news/detail-478444.html

Flutter 的下一步, Dart 3 重大变更即将在 2023 到来

到了这里,关于Flutter 的下一步, Dart 3 重大变更即将在 2023 到来的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js获取某天时间的下一天

    方便自己参考 

    2024年02月13日
    浏览(40)
  • “上云”还是“下云”?探云计算的下一站未来!

    10 月 27 日,X(原Twitter)工程技术发布帖子称,在过去的一年里,技术团队优化了 X 的云服务使用方式,着手将更多工作负载迁往本地基础设施。这一转变使 X 每月的云成本降低了 60%。所有媒体、Blob 存储均已下云,这使得 X 的整体云数据存储量缩减了 60%,还成功将云数据处

    2024年02月03日
    浏览(36)
  • 大模型的下一站是通用人工智能(AGI)吗?

    目录 大模型的下一站

    2024年02月06日
    浏览(57)
  • 探工业互联网的下一站!腾讯云助力智造升级

    数字化浪潮正深刻影响着传统工业形态。作为第四次工业革命的重要基石,工业互联网凭借其独特的价值快速崛起,引领和推动着产业变革方向。面对数字化时代给产业带来的机遇与挑战,如何推动工业互联网的规模化落地,加速数字经济与实体经济的深度融合,已成为全行

    2024年02月11日
    浏览(42)
  • 挡不住了,中国芯片制造产业链的重大突破,5nm设备即将发给台积电

    据悉中微半导体设备(上海)股份有限公司制造的5nm刻蚀机已完成量产准备,下半年就将交付给台积电投入使用,这是国产芯片制造产业链的又一个重大突破。 由于众所周知的原因,当下芯片制造方面对光刻机的关注度最高,但是由于种种原因,中国在获取先进光刻机方面面

    2024年02月12日
    浏览(45)
  • 【Flutter 面试题】Dart是什么?Dart和Flutter有什么关系?

    【Flutter 面试题】Dart是什么?Dart和Flutter有什么关系? 👏🏻 正在学 Flutter 的同学,你好! 😊 本专栏是解决 Flutter 面试过程中可能出现的问题,而进行汇总整理的。一个问题一篇文章,尽可能详细解答,满足面试需求。 🔍 想解决开发中的零散问题?碎片化教程 👉 Flutte

    2024年02月22日
    浏览(47)
  • winform 下一步 上一步 创建向导窗口

    都是一些小技巧。   有时候在做页面时场景需求,界面是一步步引导,使信息完善,最终确定。像wpf,html拥有大量的控件资源可供开发使用,而winform 渐渐没人玩了,开发中遇到一些小技巧就给需要的朋友分享一些。 就像是这个东东。 我采用的是TabControl选项卡来实现。 第一

    2024年02月08日
    浏览(46)
  • 【Flutter】Flutter Dart 获取当前时间戳

    在日常的软件开发中,我们经常需要获取当前的时间戳。无论是用于日志记录,还是用于生成唯一标识符,或者是用于时间同步,时间戳都发挥着重要的作用。 本文将详细介绍如何在 Flutter 和 Dart 中获取当前时间戳。 通过阅读本文,你将掌握以下知识: 了解时间戳的重要性

    2024年02月12日
    浏览(41)
  • Python学了基本语法 下一步该干什么 ?

    刚入门Python,学习了基本语法后,你可以开始编写简单的程序了。接下来,你可以学习Python的标准库和第三方库,掌握更多的编程技巧和知识,提高自己的编程能力。同时,也可以通过实践项目来巩固所学知识,提高自己的实战能力。 学习Python基本语法是入门的第一步,接下

    2024年02月09日
    浏览(43)
  • Flutter学习2 - Dart

    Dart语言特点: Dart 2.0 开始便是强类型语言,而且是静态类型的(可以类比Java,C#等) 强类型语言的优点:所有类型的检查必须在编译的时候完成 前端开发的 js 语言是弱类型的语言 强类型的语言需要在定义的时候指定类型,如果不指定,编译器也可以在赋值的时候推断出变

    2024年02月21日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包