我们假定你已经知道如何用另一种语言编程,《Dart语言之旅》将向你展示了如何使用每个主要的Dart特性——从变量和运算符到类和库。
一个基本的Dart程序
下面的代码使用了许多Dart最基本的功能:
// Define a function.
printNumber(num aNumber) {
print('The number is $aNumber.'); // Print to console.
}
// This is where the app starts executing.
main() {
var number = 42; // Declare and initialize a variable.
printNumber(number); // Call a function.
}
以下是适用于所有(或者说是几乎所有)的Dart应用程序的语法:
// This is a comment. 使用//表示改行的后面部分是注释。或者也可以使用/* ... */。更多详细内容,请看注释
num 一种内置类型,其他的内置类型是String,int和bool。
23 数字。数字在编译时是常量。
print() 一个方便的输出显示方式。
'...'
(或"..."
)
字符串。
$variableName (或 ${expression}) 字符串插值:在字符串中包含一个变量或表达式的字符串。有关更多信息,请参阅字符串。
main()
应用程序执行的开始,是一个特殊的,必需的顶级函数。有关更多信息,请参阅main()函数。
- var 一种不指定类型的声明变量的方法。
注意: 我们的代码遵循Dart风格指南中的约定。例如,我们使用双空格缩进。
重要概念
当你学习Dart语言时,记住这些事实和概念:
你可以放在变量中的所有东西都是一个 object,每个对象都是一个 class 的实例。偶数,函数和null都是对象。所有对象都继承自Object类。
指定静态类型(例如前面示例中的num)可以阐明你的意图并启用静态工具检查。 (你可能会注意到当你调试代码时,没有指定类型的变量会获得特殊类型:dynamic。)在Dart 1.x中指定静态类型是可选的,但是Dart正朝着类型安全的语言发展。
- 在强模式(strong mode)下,静态和运行时会检查确保你的代码是类型安全的,帮助你在开发中而不是运行时就捕获错误。在Dart 1.x中强模式是可选的,但在Dart 2中不可选。
- 在运行之前,Dart会解析所有的代码。你可以向Dart提供提示(例如,通过使用类型或编译时常量)来捕获错误或使你的代码更快地运行。
- Dart支持顶级函数(如main()),以及与类或对象绑定的函数(分别为 static 和 instance 方法)。你也可以在函数中创建函数(嵌套函数或局部函数)。
- 同样,Dart支持顶级变量以及绑定到类或对象(静态变量和实例变量)的变量。实例变量有时称为字段或属性。
- 与Java不同,Dart没有public,protected和private关键字。如果标识符以下划线(_)开头,则它是私有的。有关详细信息,请参阅库和可见性。
- 标识符可以以字母或_开头,然后是这些字符和数字的任意组合。
- 有时候重要的是某件事是一种_表达(expression)还是一种_陈述(statement),所以我们会对这两个词做精确的描述。
- Dart工具可以报告两种问题:警告和错误。警告只是表明你的代码可能无法正常工作,但它们不会阻止你的程序执行。错误可以是编译时错误或运行时错误:编译时错误导致代码无法执行,运行时错误导致代码执行时引发异常。
- Dart 1.x有两种运行模式:生产和检查。我们建议你在检查模式下开发和调试,然后在生产模式部署。生产模式是Dart程序的默认运行模式,它针对速度进行了优化。生产模式会忽略断言语句和静态类型。检查模式是一种开发友好模式,可帮助你在运行时捕获某些类型的错误。例如,如果你将一个非数字变量传入一个num类型的值,则检查模式会抛出一个异常。
Dart 2的提示: Dart 2中移除了检查模式。更多信息请看Dart 2升级。
关键字
下表列出了Dart语言会特别处理的词语。
abstract | deferred | if | super |
---|---|---|---|
as | do | implements | switch |
assert | dodynamic | import | sync |
async | else | in | this |
enum | is | throw | await |
export | library | true | break |
external | new | try | case |
catch | factory | operator | var |
class | false | part | void |
const | final | rethrow | while |
continue | finally | return | with |
covariant | for | set | yield |
default | get | static |