シングルトンエイリアスメソッドを定義しようとしています。 のように:メソッドを単一のオブジェクトにエイリアスする
name = 'Bob'
# I want something similar to this to work
name.define_singleton_method(:add_cuteness, :+)
name = name.add_cuteness 'by'
私は2番目のパラメータとしてメソッドオブジェクトを渡すことができます確信しています。
私は、私はそれを使用しないString#+
方法をエイリアスしたいこの
name.define_singleton_method(:add_cuteness) { |val| self + val }
ようにそれを行うにはしたくないでしょう。 エイリアスを強調していますが、実際のメソッドオブジェクトを2番目のパラメータとして送信することもすばらしくなります。
あなたはそれが不変である整数で 'define_singleton_method'することはできません。
Object#define_singleton_method
は基本的にはこのような何かを行います – bjhaid@bjhaid true。私はそれを 'String'に変更しました –
' name = 'Bob'; name.define_singleton_method(:add_cuteness、&name.method(:+)); name = name.add_cuteness 'by'#=> 'Bobby''これはあなたが欲しいものですか? – bjhaid