Function 非void函数不返回任何dart

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值的函数,但在某些情况下,我希望终止该函数而不返回任何内容

举个例子:

int numberFunc(int num){
    if(num > 10){
       return; 
/* terminates the function for numbers more than 10 */
     }
    return num;
}
这很好,但我收到一条警告,说函数的返回类型为int,但它没有以return语句结束

如果我使用这样的东西会有问题吗?有什么解决办法

谢谢

解决方案:


正如julemand101所解释的,我们可以返回一个空值。此外,上面的代码对于大于10的数字返回空值,因此我们以后必须处理可能的空值。

您可以只返回null。它是任何尚未设置的类型的默认值

例:


intiint i=null

相同,您只需返回null。它是任何尚未设置的类型的默认值

例:


intiint 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的运算符: