在Ruby中是否可以定义一个名称以:(冒号)结尾的方法?

the*_*ror 5 ruby syntax metaprogramming

只是想知道是否有可能通过一些漏洞来定义以冒号结尾的方法名称.它的目的是使事情看起来像这样:

mymethod: arg1,arg2,arg3
Run Code Online (Sandbox Code Playgroud)

mck*_*eed 5

从技术上讲,可以使用该名称定义方法,但由于语法规则,您无法像这样调用它.(冒号被认为是一个不同的标记.)你必须这样做send('mymethod:', args),这违背了目的.

  • 有时候使用外部DSL比尝试用你的语言做太变态的东西更好. (2认同)