一个基本的Dart程序
下面的代码中使用了很多Dart最基本的特性:
// 定义一个函数
printInteger(int aNumber) {
print('The number is $aNumber.');
// 输出到控制台。
}
// 和多数语言一样,main()是程序开始运行的入口。
main() {
var number = 32;
// 声明和初始化一个变量。
printInteger(number);
// 调用上面定义的函数。
}
重要概念
所有你能够赋值给一个变量的都是一个对象,而每个对象都是类的一个实例。甚至是数字、函数还有null值都是对象。所有对象都源于一个公共父类Object。
虽然Dart是强类型语言,但是类型声明是可选项(即不是必须的),因为Dart可以自己去推断类型。在上面的代码中,变量number就被推断为int类型。当你想明确说没有类型时,可以使用特殊类dynamic。
Dart支持泛型,像List,一个整数列表。
Dart支持顶层函数,如main(),以及与类绑定的函数(静态方法),还有与对象绑定的函数(实例方法)。甚至可以在函数中创建函数(嵌套函数或局部函数)。
同样,Dart支持顶级变量、静态变量和实例变量。实例变量即对象的属性。
和Java不同的是,Dart没有public、protected和private的关键字。如果一个变量名以下划线“_”开头,说明它是私有变量。
变量名要以字母或者下划线开头。
关键字
待补充。
变量
以下是声明变量并初始化的示例:
var name = 'yzune';
以上的声明没有明确指定变量是什么类型的,由Dart去推断。当然也可以显式地指定变量类型,像下面这样子:
String name = 'yzune';
默认值
未初始化的变量初始值为null,哪怕对于int类型的变量也是如此。这点跟Java不太一样。
final和const
如果你不打算修改一个变量,那么可以在声明的时候使用final或const。一个final变量只能被赋值一次;一个const变量等同于编译时常量(声明为const也意味着是final变量)。
注意:类的属性可以是final,但不可以是const。
声明final变量的示例:
final name = 'yzune';
// 可以不需要指明类型。
// name = 'yzune';
// 但上面这种就不行,因为没有final的关键字。
final String nickname = 'yz';
// 也可以去指明类型。
使用const可以声明一些常量。如果是在定义一个类的成员变量时使用const,应该使用static const进行声明。声明const示例:
const c = 300000000;