我想有一个更大范围的括号。为了让一个想法,我已经可以修改普通括号:我可以在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