正如我們所知,wo可以通過前綴&:
將方法傳遞給迭代器方法。
例如:將方法傳遞給迭代器方法時發生了什麼
["a", "b"].map(&:upcase) #=> ["A", "B"]
def rettwo
2
end
["a", "b"].map(&:rettwo) #=> [2, 2]
這是問題所在,當我寫的方法,通過一種方法與&:
前綴給它,我有一個錯誤消息:「引發ArgumentError:沒有給定接收器」。
讓我告訴代碼:
def a_simple_method &proc
puts proc.class # it shows `Proc`
proc.call
end
def a_iterator_method
puts yield
end
a_simple_method &:rettwo #=> ArgumentError: no receiver given
a_iterator_method &:rettwo #=> ArgumentError: no receiver given
我缺少的是什麼,怎麼樣map
陣列的方法處理它
什麼是'rettwo'? – Phrogz
@Phrogz:它在開始:) –
@Phrogz從我們可以看到的,我會說這是一個簡單的方法返回2(ret-urn two) –