我正在爲exerciseism.io進行練習 - 說明很長且與此問題無關,但您可以找到我的完整解決方案here。將定製方法從自定義類傳遞到.map
基本上我有一個Robot
,3類私有方法:
def rand_letters
('A'..'Z').to_a[rand(26)]
end
def rand_numbers
(0..9).to_a[rand(10)]
end
我試圖做的是這些傳遞給其他私有方法,像這樣:
def set_name
@name = ((1..2).map(&:rand_letters) + (3..5).map(&:rand_numbers)).join
end
當我這樣做我收到錯誤:undefined method 'rand_letters' for 1:Fixnum
。看過this question後,我認爲可能問題是我的班級沒有to_proc方法。不幸的是我不知道如何解決這個問題。我試圖讓我的課程從Proc
繼承,但我堅持如何覆蓋to_proc
。任何幫助指引我在正確的方向將不勝感激。
兩問題:是否需要使用短語法('.map(&:method)'),如果是,是否允許猴子修補「Fixnum」和「String」cl驢? – ndn
你還期望什麼結果 - 你想要一個隨機的字母/數字映射到範圍內的每個元素? – ndn
不,它不是要求的一部分,只是有人在評論中提到了它(你可以在鏈接到完整的解決方案中看到它們),並且他們提出了map(&:method) – SoSimple