我有下面的代碼,它運行良好:這個Ruby類更改名稱將導致錯誤
class Array
def my_name
first_name = "Bob"
last_name = "Smith"
yield(first_name, last_name)
end
end
['a', 'b', 'c', 'd'].my_name {|i, x| puts "#{i} #{x}"}
但此刻我改變類的名字從「陣列」到別的東西,比如說「 Array1「,我得到以下錯誤:
`<main>': undefined method `my_name' for ["a", "b", "c", "d"]:Array (NoMethodError)
我不確定那個錯誤意味着什麼,但它破壞我的代碼。這是破碎的代碼:
class Array1
def my_name
first_name = "Bob"
last_name = "Smith"
yield(first_name, last_name)
end
end
['a', 'b', 'c', 'd'].my_name {|i, x| puts "#{i} #{x}"}
對於我的生活,我無法弄清楚什麼是錯的。我真的只是想弄清楚如何在類中的方法上使用yield函數。我真的遇到了麻煩,如果有人可以幫助我,將不勝感激。謝謝!
順便說一句 - 'yield'不是一個函數,但關鍵字(即相同的地位,'def'或'end',而不是相同的地位,例如'puts')。 – Amadan