Dart有一个可用于代替长if-else语句的开关盒:
var command = 'OPEN'; switch (command) { case 'CLOSED': executeClosed(); break; case 'OPEN': executeOpen(); break; case 'APPROVED': executeApproved(); break; case 'UNSURE': // 缺少break语句意味着此案将失败 // 到下一条语句,在这种情况下为默认情况 default: executeUnknown(); }
您只能比较整数,字符串或编译时常量。被比较的对象必须是同一类的实例(而不是其任何子类型的实例),并且该类不得覆盖==。
Dart中switch的一个令人惊讶的方面是非空case子句必须以break结尾,或者更不常见的是continue,throw或return。也就是说,非空大小写子句不能通过。您必须显式地结束非空case子句,通常以break结束。如果省略中断,继续,抛出或返回,则将收到静态警告,并且代码将在运行时在该位置错误。
var command = 'OPEN'; switch (command) { case 'OPEN': executeOpen(); // 错误:缺少中断会引发异常! case 'CLOSED': // 空箱子掉了 case 'LOCKED': executeClosed(); break; }
如果您希望使用非空值case,可以使用continue和标签:
var command = 'OPEN'; switch (command) { case 'OPEN': executeOpen(); continue locked; locked: case 'LOCKED': executeClosed(); break; }
主要内容:使用DartPad在线执行脚本,设置本地环境,IDE支持,dart2js工具本章讨论在Windows平台上为Dart设置执行环境。 使用DartPad在线执行脚本 可以使用 https://dartpad.dartlang.org/ 上的在线编辑器在线运行测试脚本。Dart编辑器执行脚本并显示HTML和控制台输出。在线编辑器附带一组预设代码示例。 Dartpad编辑器的截图如下 - Dartpad还可以以更严格的方式进行编码。通过检查编辑器右下角的强模式选项来实现。强模式
1 概述 2 安装和使用 2.1 安装 2.2 使用 DartPad:快速体验Dart 2.3 基本语法 3 最佳实践 参考
typedef或函数类型别名有助于定义指向内存中可执行代码的指针。 简单地说, typedef可以用作引用函数的指针。 下面给出了在Dart程序中实现typedefs的步骤。 Step 1: Defining a typedef typedef可用于指定我们希望特定函数匹配的函数签名。 函数签名由函数的参数(包括其类型)定义。 返回类型不是函数签名的一部分。 其语法如下。 typedef func
异常(或异常事件)是在执行程序期间出现的问题。 发生异常时,程序的正常流程中断,程序/应用程序异常终止。 内置Dart_programming例外包括 - Sr.No 例外与描述 1 DeferredLoadException 延迟库无法加载时抛出。 2 FormatException 当字符串或某些其他数据不具有预期格式且无法解析或处理时抛出异常。 3 IntegerDivisionByZero
包是一种封装一组编程单元的机制。 应用程序有时可能需要集成某些第三方库或插件。 每种语言都有一种机制来管理外部软件包,如Maven或Gradle for Java,Nuget for .NET,npm for Node.js等.Dart的软件包管理器是pub 。 Pub有助于在存储库中安装包。 托管软件包的存储库可以在https://pub.dartlang.org/.找到https://pub.
Dart是一种optionally typed language 。 Dart中的集合默认是异构的。 换句话说,单个Dart集合可以托管各种类型的值。 但是,可以使Dart集合保持同质值。 泛型的概念可用于实现相同的目的。 泛型的使用强制限制集合可以包含的值的数据类型。 这种集合被称为类型安全集合。 类型安全是一种编程功能,可确保内存块只能包含特定数据类型的数据。 所有Dart集合都通过泛型支持类