2014-03-26 23 views
3

可以將塊的結果分配給一個變量的塊:分配一個開始 - 結束而塊的結果防止了執行

a = begin 
    1 
end 
a #=> 1 

同時,while可以像這樣的塊之後附加:

begin 
    puts "this will be printed once" 
end while false 

並且它將被執行至少一次。如果您分配一個變量爲being-end-while塊,它不會執行任何更多:

a = begin 
    puts "this won't be printed at all" 
end while false 

有人可以給我解釋一下這是怎麼回事呢?

回答

3

如果添加任務,它被解釋爲:

(a = begin 
    puts "this won't be printed at all" 
end) while false 

怎麼樣begin ... end while false周圍放括號?

a = (begin 
    puts "this won't be printed at all" 
end while false) 
# prints: this won't be printed at all 
# a => nil 
+0

但是,如果我是正確的,這項任務至少會執行一次? – BroiSatse

+0

@BroiSatse,它不是'開始......結束,而..'了。這是'... false'(內聯語句)。 – falsetru

+0

@BroiSatse,如果你的意思是第二個,它會打印字符串。 – falsetru