构造函数
初始化列表(冒号表示)
- 初始化列表。它是一个分离的表达式列表,可以访问构造函数参数,并可以分配给实例字段,甚至是final实例字段。
- 初始化列表会在构造方法体执行之前执行
- 使用逗号分隔 初始化表达式
- 初始化列表 常用于 设置final变量
- 初始化列表也用于调用其他构造函数: …, super(‘foo’)
- 初始化程序列表也支持assert(…)哪些方便检查参数值
Person.withMap(Map map) : name = map["name"], address = map["address"]{
this.age = map["age"];
}
assert
断言,保证
保证条件为true,才继续往下执行,否则打断。
assert(name != null);
可选参数{}
- 可选参数 类似方法重载
- 可选命名参数 {param1,param2}
- 可选位置参数 [param1,param2]
- 必选参数 必须 在可选前面
- 可选参数,可以设置默认值,没传参数用默认
testAlternative(String name,{int age = 88,String sex}){
print("testAlternative name $name age $age sex $sex");
}
StatefulWidget
在Flutter开发中便有了一个默认的约定:如果StatefulWidget的状态是希望暴露出的,应当在StatefulWidget中提供一个of静态方法来获取其State对象,开发者便可直接通过该方法来获取;如果State不希望暴露,则不提供of方法.
// ScaffoldState ancestorStateOfType = context.ancestorStateOfType(new TypeMatcher<ScaffoldState>());
ScaffoldState ancestorStateOfType = Scaffold.of(context);
ancestorStateOfType.showSnackBar(new SnackBar(content: new Text("iam snake bar")));