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

Ruby单行三目运算符使用return语句报错该如何修复?

错误原因

Ruby 中 return 关键字的优先级高于三目运算符(?:),你当前的写法会导致语法解析失败,不符合三目运算符的语法规则。

修复方案

你可以选择两种常见的修复方式,都可以正常运行:

  • 方案1:将return提取到三目运算的最外层,把整个三目运算的结果作为返回值
    def odd_or_even(number)
      return number % 2 == 0 ? "even" : "odd"
    end
    
    odd_or_even(3)
    
  • 方案2:遵循Ruby的书写惯例省略return,Ruby方法会默认返回最后一行表达式的执行结果,写法更简洁
    def odd_or_even(number)
      number % 2 == 0 ? "even" : "odd"
    end
    
    odd_or_even(3)
    
额外优化建议

你还可以用Ruby内置的Integer#even?方法简化判断逻辑,可读性更高:

def odd_or_even(number)
  number.even? ? "even" : "odd"
end

内容的提问来源于stack exchange,提问作者Barbie Zoani Gray

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:48:03