我想有一個更大範圍的括號。爲了讓一個想法,我已經可以修改普通括號:我可以在Ruby中創建替代括號嗎?
class City
def initialize(city:)
@city = city
end
def [](man)
print "I am #{man} of #{city}"
end
end
所以我可以做:
paris = City.new city: "Paris"
paris["George"] # ==> I am George of Paris
但現在我想補充新的括號像這樣:
class City
def initialize(city:)
@city = city
end
def [M M](man)
print "I am man: #{man} of #{city}"
end
def [W W](woman)
print "I am woman: #{woman} of #{city}"
end
end
所以我可以這樣做:
paris = City.new city: "Paris"
paris[M "George" M] # ==> I am man: George of Paris
paris[W "Lisa" W] # ==> I am woman: Lisa of Paris
這可能嗎?怎麼樣?
不,這是不可能的。 '[]'是一種方法,不是魔術。 – mudasobwa
不管怎樣,你都不應該使用方括號。方括號用於索引對象,例如從數組中檢索元素。只要使用一個常規方法:'paris.say(「George」,:man)#我是男人:巴黎的喬治' –
當然德文,這只是一個例子,以澄清這個想法。我的問題只是爲了瞭解Ruby的彈性。 – Stefano