main()
是Dart程序必需的顶级入口函数- 没有
public
、protected
、 和private
关键字。如果名字 以下划线(_)开头,则是库私有成员 - Dart中一切皆对象,故没有初始化的变量的值为
null
- 布尔类型中只有true被认为是
true
,其他所有的值都认为是false
(与JavaScript不同) - 数组为
List
对象,一般称之为lists
(列表) => expr;
语法是{ return expr;}
的缩写形式。在arrow (=>)
和 分号 (;) 之间只能是expression
(表达式),不能用statement(语句)
。例如,不能用if statement
,但是可以用 条件 (?:) 表达式。=>
也可以使用参数类型(代码风格指南不建议使用类型)- 方法参数有两种类型:必需的和可选的。 必需的参数出现在可选参数前面
可选参数(可选参数可以是命名参数或者位置参数。但是不能同时使用这两种类型)
- 可选参数可以有默认值,默认值必需为编译期常量
用
{param1, param2, …}
来定义方法的命名参数,使用冒号 (:) 来设置默认值/** * Sets the [bold] and [hidden] flags to the values you specify, * defaulting to false. */ enableFlags({bool bold: false, bool hidden: false}) { // ... } enableFlags(bold: true); // bold 的值为 true; hidden 没指定则为默认值 false.
位于 [] 中间的参数为可选位置参数,用
=
设置默认值String say(String from, String msg, [String device='carrier pigeon', String mood]) { var result = '$from says $msg'; if (device != null) { result = '$result with a $device'; } if (mood != null) { result = '$result (in a $mood mood)'; } return result; } assert(say('Bob', 'Howdy') == 'Bob says Howdy with a carrier pigeon');
- 每个方法都有一个返回值,如果没有指定返回值,默认会在函数最后附加一个
return null
的语句