【问题标题】:Basic Ruby Exercise - Method and If基本 Ruby 练习 - 方法和如果
【发布时间】:2016-05-31 05:30:29
【问题描述】:

我正在做一个 Ruby 练习,但我不知道哪里出了问题。我需要修改 suma 方法,以便我的测试都返回 true。

我不允许添加另一个 if 或 else,删除代码或修改参数。我错过了什么吗?

def suma(a, b)
  "#{a} es mayor que #{b}" if a > b
  "#{a} no es mayor que #{b}"
end

#test
p suma(10, 5) == "10 es mayor que 5"
p suma(4, 23) == "4 no es mayor que 23"

【问题讨论】:

  • Ruby 总是从方法返回最后一个表达式。在这种情况下,第二句仍然是执行链中的最后一句。

标签: ruby


【解决方案1】:

您在第一个条件中缺少return

def suma(a, b)
  return "#{a} es mayor que #{b}" if a > b
  "#{a} no es mayor que #{b}"
end

Ruby 默认会返回方法中的最后一条语句,但它允许提前返回。如果a > b 你想早点回来,你必须告诉Ruby。否则,它将执行该行并默认返回方法中的最后一条语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-10
    • 1970-01-01
    • 2013-11-12
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-01
    • 1970-01-01
    相关资源
    最近更新 更多