是否有红宝石单行“如果x返回”?

时间:2011-03-25 17:32:28

标签: ruby syntax

我需要添加大量的地方

if this_flag
  return
end

可以用ruby在一行上完成吗?

4 个答案:

答案 0 :(得分:90)

  

是否有红宝石单行“return if x”?

是:

return if x

我爱Ruby: - )

答案 1 :(得分:7)

JörgWMittag的一些补充:

x && return
x and return
if x then return end

我实际上并不推荐前两种形式:但是,上面的例子都是有效的作品。我个人更喜欢一般避免使用return - Ruby中的大多数语法结构都是可用的表达式。

快乐的编码。

答案 2 :(得分:7)

Ruby总是返回最后一件事......为什么不以不同方式构建代码呢?

def returner(test)    
  "success" if test   
end

无论你做了什么,最后都会回来。我喜欢Ruby。

答案 3 :(得分:1)

创建一个检查预期类类型的方法 以下示例。方法check_class一找到正确的类就会返回true。 如果您因任何原因需要扩展不同类类型的数量,则非常有用。

def check_class(x)
  return true if is_string(x) 
  return true if is_integer(x)
  # etc etc for possible class types
  return false # Otherwise return false
end

def is_string(y)
  y.is_a? String
end

def is_integer(z)
  z.is_a? Integer
end


a = "string"
puts "#{check_class(a)}"