如何将字符串转换为方法调用?

mko*_*mko 5 ruby

如何使用字符串作为方法调用?

"Some Word".class   #=> String
a = "class"
"Some World".a      #=> undefined method 'a'
"Some World"."#{a}" #=>  syntax error, unexpected tSTRING_BEG
Run Code Online (Sandbox Code Playgroud)

Lee*_*vis 16

对象#发送

>> a = "class"
>> "foo".send(a)
=> String

>> a = "reverse"
>> "foo".send(a)
=> "oof"

>> a = "something"
>> "foo".send(a)
NoMethodError: undefined method `something' for "foo":String
Run Code Online (Sandbox Code Playgroud)

  • 你也可以添加发送参数:`"foo".send("<<","bar")`. (2认同)