可选命名参数
可选 命名参数:{param1,param2,…}
可选 位置参数:[param1,param2,…]
如果存在具体参数,可选参数声明的位置一般都是放在最后
代码:
void main() {
String allName = getAllName("zhou", "bin",age: 12,gender: "男");
print(allName);
}
// 可以指定默认值
String getAllName(String firstName, String secondName, {int age, String gender='girl'}){
return firstName + " " + secondName + " " + age.toString() +" " + gender;
}
疑问:
参考了网上的写法,既然是可选参数,那么就可以不传,我不传的时候就会报错,不知道是不是版本问题。。。
补充:
如果要是不传值得话,必须指定一个默认值
可选位置参数
void main() {
printPerson2("张三", 28);
printPerson('zhou', 22,'chow','bin');
}
//
printPerson(name, age,[String firstname, String secondname="bin"]) {
print("name=$name, age=$age, firstname=$firstname, secondname=$secondname");
}
printPerson2(String name, [int age, String gender]) {
print("name=$name,age=$age,gender=$gender");
}
注意:
可选位置参数,传递的方式与 可选命名参数的传递方式不一样。可选命名参数在传递时要把名字加上。
您可以用@required在任何Dart代码中修饰指定参数(不仅仅是Flutter),以表明它是必需的参数。例如:
const Scrollbar({Key key, @required Widget child})
网友评论