0

我注意到所有 3 个“事物”都使用类似的语法,即“name1”后跟一个符号:

示例 1:

attr_reader :methodname

示例 2:

before_create :dothisthing

示例 3:

content_type :json

是否有特定的行话可以用来指代这种语法模式?

4

3 回答 3

2

我听说这些被称为“类宏”,尤其是在 Rails 的上下文中,但它们本质上都是编写其他类或实例方法的类方法(即元编程)。

于 2013-06-21T19:33:50.590 回答
0

我刚刚被告知,上述语法实际上是常规方法调用的语法糖。例如:

erb :index, :layout => false

真的是一样的:

erb(:index, {:layout => false})

上面提到的所有例子都只是利用了这种糖。这对我来说很有意义,但来自 SO 社区的第二意见不会出错。

于 2013-06-21T21:47:02.683 回答
0

它们的共同点是它们都使用 :symbols。但是在这三个中,我认为只有 attr_reader 是核心语言的一部分。

于 2013-06-21T19:31:58.680 回答