📅  最后修改于: 2020-11-05 04:13:13             🧑  作者: Mango
语法定义了一组编写程序的规则。每种语言规范都定义了自己的语法。 Dart程序由-
让我们从传统的“ Hello World”示例开始-
main() {
print("Hello World!");
}
main()函数是Dart中的预定义方法。此方法充当应用程序的入口点。 Dart脚本需要main()方法才能执行。 print()是预定义的函数,可将指定的字符串或值打印到标准输出(即终端)。
上面的代码输出将是-
Hello World!
您可以通过两种方式执行Dart程序-
通过终端执行Dart程序-
dart file_name.dart
通过WebStorm IDE执行Dart程序-
右键单击IDE上的Dart脚本文件。 (文件应包含main()函数以启用执行)
单击“运行<文件名>”选项。下面是相同的屏幕截图-
也可以单击按钮或使用快捷键Ctrl + Shift + F10执行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)
标识符是为程序中的元素(如变量,函数等)赋予的名称。标识符的规则为-
标识符可以包括字符和数字。但是,标识符不能以数字开头。
除下划线(_)或美元符号($)外,标识符不能包含特殊符号。
标识符不能是关键字。
它们必须是唯一的。
标识符区分大小写。
标识符不能包含空格。
下表列出了一些有效和无效标识符的示例-
Valid identifiers | Invalid identifiers |
---|---|
firstName | Var |
first_name | first name |
num1 | first-name |
$result | 1number |
关键字在语言上下文中具有特殊含义。下表列出了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支持以下类型的注释-
单行注释(//) -“ //”与行尾之间的任何文本均被视为注释
多行注释(/ * * /) -这些注释可能跨越多行。
// this is single line comment
/* This is a
Multi-line comment
*/
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