大括弧を使いたいと思います。アイデアを与えるために、私はすでに、通常の角括弧を変更することができます。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