3
從documentation兩者爲Proc#lambda?
:參數處理是「僵化」意味着什麼?
返回true爲一個Proc對象哪個參數的處理是剛性的。這種特效通常由lambda生成。
什麼是「剛性參數」處理?
從documentation兩者爲Proc#lambda?
:參數處理是「僵化」意味着什麼?
返回true爲一個Proc對象哪個參數的處理是剛性的。這種特效通常由lambda生成。
什麼是「剛性參數」處理?
如果傳遞錯誤的參數數量,則Lambdas將引發ArgumentError,Proc.new不會。
實施例:
lam = ->(x){ "OK" }
lam.lambda? # => true
lam.call # => ArgumentError
lam.call(1) # => OK
proc = Proc.new { |x| "OK" }
proc.lambda? # => false
proc.call # => OK
proc.call(1) # => OK
proc.call(1,2,3,4,5,6,7,8,9) # => OK
但是也有一些lambdas和'Proc's不在參數處理和'return' Proc's之間'兩點不同。在這兩種情況下,lambda表現得都像方法一樣,'Proc'就像塊一樣。這很容易記住:「lambda」和「method」都是希臘字母,「block」和「proc」韻。 –
https://en.oxforddictionaries.com/definition/method – mbigras