私はメタプログラミングRubyの本を読んでいますが、理解できない方法があります。
def to_alphanumeric(s)
s.gsub /[^\w\s]/, ''
end
最近呼び出され、奇妙な式に変換される引数変数があるのがわかりますか?この方法で正確に何ができますか、彼は役に立ちますか?
次の方法で問題なく動作します。
def to_alphanumeric(s)
s.gsub %r([aeiou]), '<\1>'
end
p = to_alphanumeric("hello")
p p
>> "h<>ll<>"
しかし、メソッドをクラスにアップグレードし、メソッド+ argv to_alphanumericを呼び出すだけでは、機能しなくなります。
class String
def to_alphanumeric(s)
s.gsub %r([aeiou]), '<\1>'
end
end
p = to_alphanumeric("hello")
p p
undefined method `to_alphanumeric' for String:Class (NoMethodError)