Dart3稳定版即将推出,带来两大新语言特性

发表时间: 2023-09-17 17:59

·我们即将发布Dart3稳定版,这是我们历时多年、致力于实现null安全的重要成果。

·在Dart3中,所有代码都具备健全的null安全特性,这是我们实现这一目标的关键一步。

·通过引入null safety,我们成功减少了运行时错误,提高了性能,从而为开发者带来更加流畅的开发体验。

·Dart生态系统已经做好充分准备,迎接Dart3的到来。

·我们已经为Dart3的发布做好了充分的准备工作。

·目前,在pub.dev上排名前1000的软件包中,有99%都已经支持Dart3。

·我们还新增了两个新的语言功能,分别是记录解构和模式匹配。

·记录解构和模式匹配是Dart3中最强大的新功能之一,我们相信这将为所有Dart开发者带来极大的便利。

·Dart3还新增了一些强大的API控制功能,这将帮助软件包所有者更好地管理API。

·我们还增加了类修饰符这样的高级用户功能,方便软件包所有者更好地管理和控制代码。

·我们相信,模式是Dart3中最强大的新功能,所有Dart开发者都将从中受益。

·我们相信,所有Dart开发者都会从模式的引入中受益。在安吉中,你可以构建结构化数据。首先,它可以构建结构化数据。

例如,从这个简单示例中可以看到。现在,一个函数可以返回一对元素。

而且,它更容易处理结构化数据。在main函数中,我们可以轻松地将数据分解为单个元素。

例如,通过使用模式,Dart3的能力远远不止这些。模式还可以帮助开发者更轻松地编写代码。

这也更容易编写基于数据结构的代码。例如,下面是一个示例结构化数据。

这是一个类层次结构,其中包含形状和两个子类型,如正方形和圆形。

我们将使用新的switch表达式来实现计算面积。

首先,我们将在形状上添加一个开关。

然后,我们将在类型上添加一个开关。

首先是正方形,然后是圆形。接下来,我们需要提取属性长度和宽度,并将其存储在新变量L和R中。

最后,将半径存储在新变量R中。通过补充主要数据,我们已经拥有了计算面积所需的一切要素。

正如您所见,生成的代码非常简洁易懂。

我们正在编写一个名为“scribe”的函数。

这个函数是对DateTime的扩展,名为“describe”。

它的主要功能是描述相对于当前日期的日期。

如果我们以今天的Google 1/0大会日期5/10进行调用,则应该输出“今天”。

如果我们输入5/11,则应该输出“明天”,而对于更久远的时间,可以使用“now”和“ago”开头。

下面是这个函数的开始部分。

我们将通过使用switch语句对持续时间进行模式匹配来处理变量“difference”。

第一个matcher用于匹配类型持续时间。

接下来,将属性“inDays”取出来,放入一个名为“D”的新变量中。

这样,我们就可以输出“Ddays”,即“now”和“as you can see”之间的持续时间。

对于这些简单的条件,这种方法非常适用。

但我们可以进一步改进那些更接近当前日期的条件。继续匹配特定值0,表示零天,0 days and for that we'll print out today,这样就会输出today,and we can copy this a few times,而且可以多次复制。

如果inDays从-1开始,将输出 tomorrow。let's go ahead and run that,现在继续运行,that's looking great 很不错。现在我们需要修正负号的情况。

让我们继续让该匹配更为具体。并仅在isNegative为false时匹配。若isNegative为true,则出现错误指示switch语句不匹配所有。

true时是我们遗漏的情况,我们可以输入ago。而D当然是负数,因此可以取绝对值继续运行。代码已经全部生成,而且没有错误。这段代码非常出色。

·具有更高的可读性和易用性。

·Dart3的第二个语言功能是类修饰符,它更像是一个高级用户功能,需要每个dot开发人员使用。

·该功能可以满足Dart开发人员制作大型API界面或构建企业级应用的需求。

·或构建企业级应用。

·定义提供API的类,可以控制消费者的行为。不过,默认值保持不变。我们希望Dart保持简单易用的特性,以便像以前一样轻松构建和扩展。同时,我们也希望它能够支持常规的类定义和实现。与此同时,新的类修饰符还提供了一些额外的限制和功能。例如,您可以使用它们来定义协议和类,并在必要时关闭类型层次结构。具体信息请参考我们的新文档和类修饰符CodeLab。这些功能将有助于提高开发效率和代码质量。我们相信这些新的特性将为Dart的未来发展带来积极的影响。