📅  最后修改于: 2023-12-03 14:40:37.106000             🧑  作者: Mango
在Dart中,函数可以被标记为可空,也就是说它们可以返回一个空值null。这对于编写可靠的代码非常重要,因为程序员可以从函数中获取一些特定的信号,表明函数未返回任何有用的值。
声明可空函数在Dart中非常简单,只需要使用'?'标记即可。例如:
int? getLength(String? str) {
if (str == null) {
return null;
}
return str.length;
}
在此示例中,'getLength'函数需要一个字符串作为参数,它可以为空。如果传递的字符串是空的,函数会直接返回null。否则,函数将返回字符串的长度作为整数。因此,返回类型int被标记为可空int?。
调用可空函数也很容易。只需要处理特殊的情况即可。例如,我们可以使用'.?'操作符(也称为“安全调用”操作符)来调用可空方法:
String? str;
int? length = str?.length;
print(length); //输出: null
在此示例中,我们称str?.length为安全调用,因为我们不知道str是否包含有效值。如果str为空,那么安全调用操作符将返回空值null。
我们还可以使用null判断操作符('??')来提供默认值。例如:
String? str;
int length = str?.length ?? 0; // 如果str为空,则返回0
print(length); //输出: 0
在这个例子中,如果str为空,那么null判断操作符('??')将返回0,否则它将返回字符串的长度。
总之,在Dart中声明和调用可空函数非常简单。只需要添加'?'标记,就可以让它们返回空值。在调用可空函数时,我们可以使用'.?'和'??'操作符来处理空值。这使得我们能够编写更加鲁棒的代码。