在进一步研究Ruby时,我注意到有些方法似乎真正赋予语言权力,而其他方法只是语法糖。
糖的例子:.split,.strip,即任何只是简单地使用数据结构做一个简单任务的方法。
电源方法示例:call,send,responds_to?,method_missing等。
似乎你理解那些“权力方法”,你真的知道这种语言。
对三件事感到好奇:
谢谢(希望这个问题不会被关闭!)
答案 0 :(得分:2)
这些不是真正的“权力方法”,而只是工具箱中的另一个工具,即Ruby库。
call
和send
等方法用于低级操作,绕过通常的Ruby语义层。编写使用duck typing的通用代码时经常使用responds_to?
,而method_missing
是编写以动态方式响应各种方法的代码的一种方式。这就是Rails ActiveRecord自动处理find_by_name_or_phone
方法调用的方式。
split
,strip
和chomp
等方法只是数据转换方法。它们的主要功能是将一个东西转换成另一个东西,可选地就地。
我认为这些方法之间并没有区别,它们都非常有用,但它们确实有其特殊用途。然而,就Ruby而言,所有方法都是相同的,它们没有等级或内在的重要性。
有些方法很少使用,所以除非你做了很多Ruby,否则你不太可能需要它们。