如何解析参数类型“字符串”?不能分配给参数类型“字符串”
在大于 2.12.0 的 dart sdk 中,我们经常使用“?” 确保该参数也可以具有空值,但是如何使用 ? 数据类型没有?或相反亦然。什么可以是最喜欢的方式来整理“int”?不能是“int”类型。
回答
将可为空的字符串 ( String?)分配给不可为空的字符串 ( String) 时会出现此错误。例如:
String? s = 'a';
int expectsString(String s) => s.length;
void main() {
expectsString(s); // <-- Error
}
解决方案是提供一个不可为空的String. 你可以使用:
(1) 局部变量:
void main() {
var s1 = s; // Local variable
expectsString(s1 ?? 'default value');
}
(2) Bang运算符:
void main() {
expectsString(s!); // Bang operator
}