在 Ruby 中创建 DSL 时,是否可以创建 `def` 的替代版本?
When creating a DSL in Ruby, is it possible to create an alternate version of `def`?
可以直接调用 define_method
或从接受块的方法调用中调用。但是是否可以创建一个新的方法或关键字来对代码执行操作,然后将其声明为方法,但具有与内置语法相同的语法 def
?
没有。您可以定义方法,但不能定义关键字。无论您在 Module
class 上定义什么方法,您都不能在没有 do
关键字的情况下将方法主体传递给它,这与 def
.
不同
可以直接调用 define_method
或从接受块的方法调用中调用。但是是否可以创建一个新的方法或关键字来对代码执行操作,然后将其声明为方法,但具有与内置语法相同的语法 def
?
没有。您可以定义方法,但不能定义关键字。无论您在 Module
class 上定义什么方法,您都不能在没有 do
关键字的情况下将方法主体传递给它,这与 def
.