是否有可能從父級if語句重用條件?我可以在嵌套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
在嵌套語句,而無需手動重新輸入引用?
是否有可能從父級if語句重用條件?我可以在嵌套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
在嵌套語句,而無需手動重新輸入引用?
也許你可以使用一個標誌。
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
讀者:請記住,如果是[6月14日](https://en.wikipedia.org/wiki/Flag_Day_(United_States)),我可能會更喜歡這一點。 –
如在紅寶石的評論指出,存儲內部變量返回變量的值,所以你可以這樣做:
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
我喜歡這個解決方案,除了當然,條件變量名稱應該用有意義的變量名稱替換,儘管我們無法知道這些名稱可能是什麼。 –
您偷走了我的評論!至少引用了我,麪糰。 – user5055454
我建議指出以下內容。
case a
when b
...
common_code
when c
...
common_code
end
def common_code
...
end
將它們存儲到變量? – PericlesTheo
在Python中有一個最後的部分,你可以把你的額外部分。唯一讓我想到的是將結果存儲在一個變量中。有些語言允許你在if語句中指定它們,比如「if(c = a == b ...」。 – user5055454
這些正則表達式在做什麼? – sawa