是否可以从父if语句重用条件?
示例:
if a == b || a == c
if a == b
#do thing
elsif a == c
#do the other thing
end
#in addition to this thing
end
可以在嵌套语句中引用初始a == b
或a == c
而无需手动重新输入它们吗?
答案 0 :(得分:2)
正如ruby中的注释所指出的,内部存储变量的过程会返回变量的值,因此您可以这样做:
a = 3
b = 4
c = 3
if cond1 = a == b || cond2 = a == c then
if cond1 then
puts "a==b"
elsif cond2
puts "a==c"
end
puts "do this"
end
结果
irb(main):082:0> a==b
do this
=> true
i
答案 1 :(得分:2)
我建议如下。
case a
when b
...
common_code
when c
...
common_code
end
def common_code
...
end
答案 2 :(得分:0)
也许你可以使用旗帜。
if a == b
flag = true
# do thing
elsif a == c
flag = true
# do the other thing
else
flag = false
end
if flag
# in addition to this thing
end
或
flag =
case a
when b
# do thing
true
when c
# do the other thing
true
else
false
end
if flag
# in addition to this thing
end