【问题标题】:Non-void function returns nothing dart非 void 函数不返回任何东西
【发布时间】:2020-03-26 23:07:46
【问题描述】:

我有一个返回 int 值的函数,但在某些情况下我想终止该函数并且什么都不返回。

只是举个例子:

int numberFunc(int num){
    if(num > 10){
       return; 
/* terminates the function for numbers more than 10 */
     }
    return num;
}

这工作正常,但我收到一条警告,说函数的返回类型为 int,但它没有以 return 语句结束。

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

谢谢

解决方案:

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

【问题讨论】:

    标签: function dart return-value return-type


    【解决方案1】:

    您真正想要的是返回null 以表明该方法没有返回任何值:

    int numberFunc(int num){
        if(num > 10){
           return null; 
    /* terminates the function for numbers more than 10 */
         }
        return num;
    }
    

    但请记住,使用 numberFunc 结果的方法需要注意返回值可以是null

    【讨论】:

      【解决方案2】:

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

      例如:

      int i;int i = null

      相同

      【讨论】:

      • 快速提问,如果我有 int x = numberFunc(20);使用我写的相同代码,结果不会是空值吗?
      • 是的,所以即使xnull,您也需要确保您的代码可以正常工作。例如。测试返回的值是否为nullif (x == null)
      • 您还可以使用可识别空值的运算符:medium.com/@thinkdigitalsoftware/…
      猜你喜欢
      • 2016-11-10
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      • 2023-03-28
      相关资源
      最近更新 更多