Ruby 如何理解编程语言中的 meta 前缀?

musicflow · March 30, 2012 · Last by WolfLee replied at March 31, 2012 · 5546 hits

我用 Ruby 做了个 IT 类的问答社区乐维 UP,很多 Ruby 的 information,贴过来跟大家分享。

问:在 Ruby 中经常提到的 meta-programming, meta-class, meta-information 等等,这里的 meta 是什么意思? { 'meta-programming' => '元编程' } ? 但是“元”是啥? ‘meta’前缀意在强调什么?

答:要理解元编程,首先要理解什么是 meta-class.

先来看一个例子:

class Person end

tom = Person.new

Person.class #=> Class
tom.class #=> Person
这个例子里,tom 是 Person 的实例,Person 是 Class 的实例。换句话说,ruby 里面所有的对象都是某一个类的实例,每一个实例都有一个 Class,在 Class 里面定义的方法对这个 Class 的所有实例有效。

。。。不支持 code 格式,还是贴链接吧:http://leweiup.com/questions/669

@musicflow 按一下 M 看 Markdown 帮助

class Person
end

tom = Person.new

Person.class #=> Class

tom.class #=> Person


摘自Pragmatic.Metaprogramming.Ruby,不过这里我也不确定到底“Meta”的中文“元”应该怎么解释。

Metaprogramming is writing code that writes code.
Metaprogramming is writing code that manipulates language constructs at runtime.

我也不理解这个中文的元,太牵强了。可以写代码的代码,这个比较认同。

meta pref. 在 ... 之后,变换,超越,元,介于 ... 之间

You need to Sign in before reply, if you don't have an account, please Sign up first.