dart的方法
大约 2 分钟
dart的方法
位置参数
int insertUser(int id, String name) {
// ...省略无关代码
}
在主程序中调用insertUser()函数时,必须按照对应的位置提供int类型的id和String类型的name
insertUser(1, 'xiaoming');
// insertUser('xiaoming', 1); // 错误,参数位置必须与函数声明中相对应
因为调用函数时的参数位置固定,所以这种声明方式下的参数又称为位置参数。Dart允许开发者在函数中声明可选的位置参数,如下面这段代码所示。
String insertUser(int id, String name, [int age]) {
// ...
}
可选参数用[]包裹,因此在调用函数时可以传递也可以省略age参数
insertUser(1, 'xiaoming');
insertUser(2, 'xiaohong', 20); // 正确
命名参数
另一种常用的参数声明方式是使用命名参数。这种方式下,自定义函数时的参数都需要用花括号括起来。
String insertUser({int id, String name, int age}) {
// ...
}
在调用时只需要根据对应的名称传递命名参数各自的值。
insertUser(id: 1, name: 'xiaoming');
insertUser(name: 'xiaohong', id: 2);// 正确,命名参数位置不固定
所有的命名参数默认都是无序并且可选的,因此只要指定要传入的对应参数名称,就可以在任何位置传入它的值,也可以选择不传入值。对于必须要传递的命名参数,可以使用 @required来声明
String insertUser({ int id, String name, int age}) {
// ...
}
这里,insertUser()函数的参数id就被指定为必须要传递的参数,我们在调用这个函数时就必须要传递id参数。
默认参数
String insertUser({int id, String name, int age = 20}) { // 在命名参数下为age指定默认值
}
String insertUser(int id, String name, [int age = 20]) { // 在可选位置参数下为age指定默认值
}