Function 非void函数不返回任何dart
我有一个返回int值的函数,但在某些情况下,我希望终止该函数而不返回任何内容 举个例子:Function 非void函数不返回任何dart,function,dart,return-value,return-type,Function,Dart,Return Value,Return Type,我有一个返回int值的函数,但在某些情况下,我希望终止该函数而不返回任何内容 举个例子: int numberFunc(int num){ if(num > 10){ return; /* terminates the function for numbers more than 10 */ } return num; } 这很好,但我收到一条警告,说函数的返回类型为int,但它没有以return语句结束 如果我使用这样的东西会有问题吗?有什么解
int numberFunc(int num){
if(num > 10){
return;
/* terminates the function for numbers more than 10 */
}
return num;
}
这很好,但我收到一条警告,说函数的返回类型为int,但它没有以return语句结束
如果我使用这样的东西会有问题吗?有什么解决办法
谢谢
解决方案:
正如julemand101所解释的,我们可以返回一个空值。此外,上面的代码对于大于10的数字返回空值,因此我们以后必须处理可能的空值。您可以只返回null。它是任何尚未设置的类型的默认值 例:
inti与int i=null相同,您只需返回null。它是任何尚未设置的类型的默认值 例:
inti与int i=null相同,您真正想要的是返回
null
,以指示该方法不返回任何值:
int numberFunc(int num){
if(num > 10){
return null;
/* terminates the function for numbers more than 10 */
}
return num;
}
但是请记住,使用numberFunc结果的方法需要知道返回的值可以是
null
您真正想要的是返回null
,以指示该方法没有返回任何值:
int numberFunc(int num){
if(num > 10){
return null;
/* terminates the function for numbers more than 10 */
}
return num;
}
但是请记住,使用numberFunc结果的方法需要知道,如果我有int x=numberFunc(20),返回值可以是
null
快速问题;使用我编写的相同代码,结果不是空值吗?是的,因此您需要确保即使x
为null
,代码也能正常工作。例如,使用if(x==null)
测试返回的值是否为null
。您还可以使用支持null的运算符:快速提问,如果我有int x=numberFunc(20);使用我编写的相同代码,结果不是空值吗?是的,因此您需要确保即使x
为null
,代码也能正常工作。例如,使用if(x==null)
测试返回的值是否为null
。您还可以使用支持null的运算符: