如何在 Flutter 中进行空值检查或创建空值安全块?
这是一个例子:
class Dog {
final List<String>? breeds;
Dog(this.breeds);
}
void handleDog(Dog dog) {
printBreeds(dog.breeds); //Error: The argument type 'List<String>?' can't be assigned to the parameter type 'List<String>'.
}
void printBreeds(List<String> breeds) {
breeds.forEach((breed) {
print(breed);
});
}
如果您尝试用 if 案例包围它,您会得到相同的错误:
void handleDog(Dog dog){
if(dog.breeds != null) {
printBreeds(dog.breeds); //Error: The argument type 'List<String>?' can't be assigned to the parameter type 'List<String>'.
}
}
如果您创建一个新属性,然后对其进行空检查,则它可以工作,但是每次要进行空检查时创建新属性会变得很麻烦:
void handleDog(Dog dog) {
final List<String>? breeds = dog.breeds;
if (breeds != null) {
printBreeds(breeds); // OK!
}
}
有一个更好的方法吗?
喜欢?.let{}
kotlin 中的语法?