Dart 编程 - 语法


语法定义了一组编写程序的规则。每种语言规范都定义了自己的语法。Dart 程序由以下部分组成:

  • 变量和运算符
  • 课程
  • 功能
  • 表达式和编程结构
  • 决策和循环结构
  • 评论
  • 库和包
  • 类型定义
  • 表示为集合/泛型的数据结构

您的第一个 Dart 代码

让我们从传统的“Hello World”示例开始 -

main() { 
   print("Hello World!"); 
}

main ()函数是 Dart 中预定义的方法。该方法充当应用程序的入口点。Dart 脚本需要main()方法来执行。print()是一个预定义函数,它将指定的字符串或值打印到标准输出(即终端)。

上述代码的输出将是 -

Hello World!

执行 Dart 程序

您可以通过两种方式执行 Dart 程序 -

  • 通过航站楼
  • 通过 WebStorm IDE

通过航站楼

通过终端执行 Dart 程序 -

  • 导航到当前项目的路径
  • 在终端窗口中键入以下命令
dart file_name.dart

通过 WebStorm IDE

通过 WebStorm IDE 执行 Dart 程序 -

  • 右键单击 IDE 上的 Dart 脚本文件。(该文件应包含main()函数以启用执行)

  • 单击“运行<文件名>”选项。下面给出了相同的屏幕截图 -

运行 Test1 Dart

您也可以单击运行按钮按钮或使用快捷键Ctrl+Shift+F10来执行 Dart 脚本。

Dart 命令行选项

Dart 命令行选项用于修改 Dart 脚本执行。Dart 的常见命令行选项包括以下内容 -

先生编号 命令行选项和说明
1 -c 或 --c

启用断言和类型检查(检查模式)。

2 - 版本

显示虚拟机版本信息。

3 --packages <路径>

指定包解析配置文件的路径。

4 -p <路径>

指定在哪里可以找到导入的库。此选项不能与 --packages 一起使用。

5 -h 或 --help

显示帮助。

启用检查模式

Dart 程序以两种模式运行,即 -

  • 检查模式
  • 生产模式(默认)

建议在开发和测试期间以检查模式运行 Dart VM ,因为它会添加警告和错误以帮助开发和调试过程。检查模式强制执行各种检查,如类型检查等。要打开检查模式,请在运行脚本时在脚本文件名前添加 -c 或 –-checked 选项。

但是,为了确保运行脚本时的性能优势,建议在生产模式下运行脚本。

考虑以下Test.dart脚本文件 -

void main() { 
   int n = "hello"; 
   print(n); 
} 

通过输入运行脚本 -

dart Test.dart

尽管存在类型不匹配,但由于检查模式关闭,脚本仍会成功执行。该脚本将产生以下输出 -

hello

现在尝试使用“--checked”或“-c”选项执行脚本 -

dart -c Test.dart 

或者,

dart - - checked Test.dart

Dart VM 将抛出一个错误,指出存在类型不匹配。

Unhandled exception: 
type 'String' is not a subtype of type 'int' of 'n' where 
   String is from dart:core 
   int is from dart:core 
#0  main (file:///C:/Users/Administrator/Desktop/test.dart:3:9) 
#1  _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart :261) 
#2  _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)

Dart 中的标识符

标识符是赋予程序中的元素(如变量、函数等)的名称。标识符的规则是 -

标识符可以包括字符和数字。但是,标识符不能以数字开头。

  • 标识符不能包含除下划线 (_) 或美元符号 ($) 之外的特殊符号。

  • 标识符不能是关键字。

  • 它们必须是独一无二的。

  • 标识符区分大小写。

  • 标识符不能包含空格。

下表列出了有效和无效标识符的一些示例 -

有效标识符 无效的标识符
瓦尔
数字1
$结果 1号

Dart 中的关键字

关键字在语言上下文中具有特殊含义。下表列出了 Dart 中的一些关键字。

摘要1 继续 错误的 新的
作为 1 默认 最终的 无效的
断言 延期 1 最后 操作员1 真的
异步2 为了 第1部分 尝试
异步* 2 动态1 得到 1 重新抛出 类型定义 1
等待2 别的 如果 返回 变量
休息 枚举 实施1 套装 1 空白
案件 出口1 导入1 静态1 尽管
抓住 外部1 极好的
班级 延伸 转变 产量 2
常量 工厂1 图书馆1 同步* 2 产量* 2

空格和换行符

Dart 会忽略程序中出现的空格、制表符和换行符。您可以在程序中自由使用空格、制表符和换行符,并且可以以整洁一致的方式自由地格式化和缩进程序,使代码易于阅读和理解。

Dart 区分大小写

Dart 区分大小写。这意味着 Dart 会区分大小写字符。

语句以分号结束

每行指令称为一条语句。每个 dart 语句必须以分号 (;) 结尾。一行可以包含多个语句。但是,这些语句必须用分号分隔。

Dart 中的评论

注释是提高程序可读性的一种方法。注释可用于包含有关程序的附加信息,例如代码作者、有关函数/构造的提示等。编译器会忽略注释。

Dart 支持以下类型的注释 -

  • 单行注释 ( // ) - “//”和行尾之间的任何文本都被视为注释

  • 多行注释 (/* */) - 这些注释可能跨越多行。

例子

// this is single line comment  
  
/* This is a   
   Multi-line comment  
*/ 

Dart 中的面向对象编程

Dart 是一种面向对象的语言。面向对象是一种遵循现实世界建模的软件开发范例。面向对象将程序视为对象的集合,这些对象通过称为方法的机制相互通信。

  • 对象- 对象是任何实体的实时表示。根据 Grady Brooch,每个物体都必须具有三个特征 -

    • 状态- 由对象的属性描述。

    • Behave- 描述对象将如何行动。

    • 身份- 将一个对象与一组类似的对象区分开来的唯一值。

  • - OOP 中的类是创建对象的蓝图。类封装了对象的数据。

  • 方法- 方法促进对象之间的通信。

示例:Dart 和对象方向

class TestClass {   
   void disp() {     
      print("Hello World"); 
   } 
}  
void main() {   
   TestClass c = new TestClass();   
   c.disp();  
}

上面的示例定义了一个类TestClass。该类有一个方法disp()。该方法在终端上打印字符串“Hello World”。new 关键字创建该类的一个对象。该对象调用方法disp()

该代码应产生以下输出-

Hello World