·我们即将发布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的未来发展带来积极的影响。