2、没有public、protected、 和 private关键字。如果名字 以下划线(_)开头,则是库私有成员
3、Dart中一切皆对象,故没有初始化的变量的值为null
4、布尔类型中只有true被认为是true,其他所有的值都认为是false(与JavaScript不同)
5、数组为List对象,一般称之为lists(列表)
6、=> expr; 语法是 { return expr;}的缩写形式。在arrow (=>)和 分号 (;) 之间只能是expression(表达式),不能用 statement(语句)。例如,不能用if statement,但是可以用 条件 (?:) 表达式。=>也可以使用参数类型(代码风格指南不建议使用类型)
7、方法参数有两种类型:必需的和可选的。 必需的参数出现在可选参数前面
8、可选参数(可选参数可以是命名参数或者位置参数。但是不能同时使用这两种类型)
9、可选参数可以有默认值,默认值必需为编译期常量
用 {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.10、位于 [] 中间的参数为可选位置参数,用=设置默认值
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');11、每个方法都有一个返回值,如果没有指定返回值,默认会在函数最后附加一个return null的语句