所有命名参数函数的参数都是可选的,即在调用函数时可以不为它们提供实参。
时间: 2024-03-05 11:48:08 浏览: 30
你说的是正确的。在 Dart 中,所有的命名参数都是可选的,即在调用函数时可以不为它们提供实参。如果不提供实参,则使用参数的默认值(如果有的话),或者使用 `null`(如果没有默认值)。
下面是一个例子,演示了命名参数的用法:
```
void printUserInfo({String? name, int? age}) {
if (name != null) {
print('Name: $name');
}
if (age != null) {
print('Age: $age');
}
}
void main() {
printUserInfo(); // 没有输出
printUserInfo(name: 'Tom'); // Name: Tom
printUserInfo(age: 20); // Age: 20
printUserInfo(name: 'Jerry', age: 30); // Name: Jerry, Age: 30
}
```
在这个例子中,`printUserInfo` 函数接受两个命名参数 `name` 和 `age`,它们的类型都是可空的。在函数内部,使用了条件语句判断参数是否被传递,并输出相应的信息。在 `main` 函数中,分别调用了四次 `printUserInfo` 函数,传递了不同的参数。第一次调用没有传递任何参数,因此没有输出;第二次调用只传递了 `name` 参数,输出了 `Name: Tom`;第三次调用只传递了 `age` 参数,输出了 `Age: 20`;第四次调用同时传递了 `name` 和 `age` 参数,输出了 `Name: Jerry, Age: 30`。可以看到,在所有的调用中,都没有传递所有的命名参数,但是函数仍然可以正常工作。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![flv](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)