Ruby的method name是不是都有一个对应的symbol?

Ruby的method name是不是都有一个对应的symbol?

看到一段代码:
[code="java"]
String.public_method_defined? :reverse # => true
String.protected_method_defined? :reverse # => false
String.private_method_defined? :initialize # => true
String.method_defined? :upcase! # => true
[/code]

代码的功能倒是没什么,但是我不明白的是里面的:initialize等symbol是怎么匹配函数的?
是不是类在定义函数的时候已经自动生成类对应的symbol?

恩谢谢~~

简单答案:是。

方法可看作消息,调用方法即发送消息。
a.b 相当于 a.send :b

Ruby Symbol使用
http://www.iteye.com/topic/80089

Ruby小道之Symbol
http://www.iteye.com/topic/109697

module、class、singleton class之类的能定义方法的地方都会记录下Symbol到方法的映射,所以可以通过Symbol来查询到方法。