3
Case語句使用圖示操作:與當
case x
when 1
"one"
when 2
"two"
when 3
"three"
else
"many"
end
使用===
運營商進行評估。使用case
表達式的值作爲參數,調用when
表達式的值來調用此運算符。以上的情況下聲明等效於以下:
if 1 === x
"one"
elsif 2 === x
"two"
elsif 3 === x
"three"
else
"many"
end
在這種情況下:
A = 1
B = [2, 3, 4]
case reason
when A
puts "busy"
when *B
puts "offline"
end
的when *B
部分不能被重寫到*B === 2
。
這是關於圖示操作?圖示操作符是關於分配,而不是比較。 case語句如何處理when *B
?
你的第一和第二個例子之間的微小差別:如果'x'是一種方法,它只是調用一次在第一個例子,但最多三次在第二個例子。 – Stefan