2
之間的區別在這兩種情況下使用&
有什麼區別?呼叫和接收參數與&
調用
fun1
:fun1(&toproc)
在函數定義:
def fun1(&toblock) # ... end
難道接收與&toblock
一個參數時,它被轉換爲一個Proc 和用於另一種情況是它被轉換爲塊?
之間的區別在這兩種情況下使用&
有什麼區別?呼叫和接收參數與&
調用fun1
:
fun1(&toproc)
在函數定義:
def fun1(&toblock)
# ...
end
難道接收與&toblock
一個參數時,它被轉換爲一個Proc 和用於另一種情況是它被轉換爲塊?
在第一種情況下,toproc
是一個包含proc的變量,如果不是,則會將其轉換爲proc。
在第二種情況下,我們明確聲明該函數帶有一個塊參數,我們可以通過名稱toblock
來引用該塊參數。
本文給出了一個很好的解釋:http://www.skorks.com/2013/04/ruby-ampersand-parameter-demystified/
不太重複的,但這個問題的答案回答你的問題:http://stackoverflow.com/questions/28439734/purpose-of-ampersand-in -ruby-for-procs-and-calling-methods –
感謝您的鏈接 –