📜  Dart编程-语法

📅  最后修改于: 2020-11-05 04:13:13             🧑  作者: Mango


语法定义了一组编写程序的规则。每种语言规范都定义了自己的语法。 Dart程序由-

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

您的第一个飞镖代码

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

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

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

上面的代码输出将是-

Hello World!

执行飞镖程序

您可以通过两种方式执行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的常见命令行选项包括以下内容-

Sr.No Command-Line Option & Description
1 -c or –c

Enables both assertions and type checks (checked mode).

2 –version

Displays VM version information.

3 –packages

Specifies the path to the package resolution configuration file.

4 -p

Specifies where to find imported libraries. This option cannot be used with –packages.

5 -h or –help

Displays help.

启用检查模式

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

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

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

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

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

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

通过输入-运行脚本

dart Test.dart

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

hello

现在尝试使用“–已选中”或“ -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. (dart:isolate-patch/isolate_patch.dart :261) 
#2  _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)

Dart中的标识符

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

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

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

  • 标识符不能是关键字。

  • 它们必须是唯一的。

  • 标识符区分大小写。

  • 标识符不能包含空格。

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

Valid identifiers Invalid identifiers
firstName Var
first_name first name
num1 first-name
$result 1number

Dart中的关键字

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

abstract 1 continue false new this
as 1 default final null throw
assert deferred 1 finally operator 1 true
async 2 do for part 1 try
async* 2 dynamic 1 get 1 rethrow typedef 1
await 2 else if return var
break enum implements 1 set 1 void
case export 1 import 1 static 1 while
catch external 1 in super with
class extends is switch yield 2
const factory 1 library 1 sync* 2 yield* 2

空格和换行符

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

Dart区分大小写

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

语句以分号结尾

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

Dart中的评论

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

Dart支持以下类型的注释-

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

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

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

Dart中的面向对象编程

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

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

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

    • 行为-描述对象的行为。

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

  • -就OOP而言,类是创建对象的蓝图。一个类封装对象的数据。

  • 方法-方法有助于对象之间的通信。

示例:飞镖和对象方向

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

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

该代码应产生以下输出

Hello World