You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为什么Dart中部分If语句会使用不带返回值的return关键字?

Dart 中无携带值的 return 语句的作用

这种不带返回值的 return 仅可用于返回值类型为 void、Never 或者返回值为可空类型的函数中,核心作用有两个:

  • 提前终止函数执行
    当触发指定条件时,执行完对应逻辑后直接跳出当前函数,后续所有代码都不会运行。
    示例:
    void handleInput(String content) {
      if (content.trim().isEmpty) {
        print('输入内容不能为空');
        return; // 直接终止函数,下方的处理逻辑不会执行
      }
      // 执行内容校验、存储、上传等后续逻辑
      print('内容处理完成');
    }
    
  • 简化代码结构,避免多层嵌套
    把不符合条件的分支优先处理并提前返回,不需要把主逻辑层层包裹在 else 代码块中,能大幅降低代码嵌套层级,提升可读性。
    嵌套写法(可读性差):
    void verifyOrder(Order order) {
      if (order.isPaid) {
        if (order.stockEnough) {
          if (order.addressValid) {
            // 执行发货逻辑
          } else {
            print('收货地址无效');
          }
        } else {
          print('库存不足');
        }
      } else {
        print('订单未支付');
      }
    }
    
    提前return优化后:
    void verifyOrder(Order order) {
      if (!order.isPaid) {
        print('订单未支付');
        return;
      }
      if (!order.stockEnough) {
        print('库存不足');
        return;
      }
      if (!order.addressValid) {
        print('收货地址无效');
        return;
      }
      // 执行发货逻辑
    }
    

注意事项

如果函数声明的返回值为非空、非 void/Never 类型,直接使用不带值的 return 会触发编译错误,必须返回对应类型的有效值。


内容的提问来源于stack exchange,提问作者maykhid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 21:18:01