Dart 中的命名参数
named parameter in Dart
你好,我正在尝试将命名参数 {num phone} 应用于以下示例:
main(){
showInfo("abc@mail.com", "Fatima");
}
String showInfo(String email, String name, {num phone}) {
print(email);
print(name);
print(phone);
return "$email : $name : $phone";
}
但我收到错误消息:
Error: The parameter 'phone' can't have a value of 'null' because of its type 'num', but the implicit
default value is 'null'.
Try adding either an explicit non-'null' default value or the 'required' modifier.
Future<String> showInfo(String email, String name, {num phone}) async {
^^^^^
感谢您的帮助。
错误很明显,您必须将值传递给phone
参数或添加默认值。这是由于在 Dart 2.12 中引入了 Null Safety。
您可以像这样传递一个值:
showInfo("abc@mail.com", "Fatima", phone: 0);
或者给phone
参数添加一个默认值:
String showInfo(String email, String name, {num phone = 0}) {
print(email);
print(name);
print(phone);
return "$email : $name : $phone";
}
如果你愿意,你可以使用 Dart <2.12 来避免空安全,你的代码应该可以正常工作。
您将参数标记为 num
,这意味着它不能是 null
。但是,未使用的命名参数的默认值为 null
,因此您不能拥有默认值为 null
且数据类型不接受 null
的可选命名参数.
一个选项是给它一个默认值 other 而不是 null
:
String showInfo(String email, String name, {num phone = 0})
另一种选择是使它成为一个命名的、但必需的参数,因此它永远不会获得默认值:
String showInfo(String email, String name, {required num phone})
另一种选择是实际保留 phone 可选:
String showInfo(String email, String name, {num? phone})
一些额外的智慧:phone 数字可以以重要的前导零开头,不应在保存时删除。您不能使用 num
作为 phone 号码,您必须使用 string
.
你好,我正在尝试将命名参数 {num phone} 应用于以下示例:
main(){
showInfo("abc@mail.com", "Fatima");
}
String showInfo(String email, String name, {num phone}) {
print(email);
print(name);
print(phone);
return "$email : $name : $phone";
}
但我收到错误消息:
Error: The parameter 'phone' can't have a value of 'null' because of its type 'num', but the implicit
default value is 'null'.
Try adding either an explicit non-'null' default value or the 'required' modifier.
Future<String> showInfo(String email, String name, {num phone}) async {
^^^^^
感谢您的帮助。
错误很明显,您必须将值传递给phone
参数或添加默认值。这是由于在 Dart 2.12 中引入了 Null Safety。
您可以像这样传递一个值:
showInfo("abc@mail.com", "Fatima", phone: 0);
或者给phone
参数添加一个默认值:
String showInfo(String email, String name, {num phone = 0}) {
print(email);
print(name);
print(phone);
return "$email : $name : $phone";
}
如果你愿意,你可以使用 Dart <2.12 来避免空安全,你的代码应该可以正常工作。
您将参数标记为 num
,这意味着它不能是 null
。但是,未使用的命名参数的默认值为 null
,因此您不能拥有默认值为 null
且数据类型不接受 null
的可选命名参数.
一个选项是给它一个默认值 other 而不是 null
:
String showInfo(String email, String name, {num phone = 0})
另一种选择是使它成为一个命名的、但必需的参数,因此它永远不会获得默认值:
String showInfo(String email, String name, {required num phone})
另一种选择是实际保留 phone 可选:
String showInfo(String email, String name, {num? phone})
一些额外的智慧:phone 数字可以以重要的前导零开头,不应在保存时删除。您不能使用 num
作为 phone 号码,您必须使用 string
.