2013-02-15 48 views
0

创建。方法如何创建一个需要作为一个变量,它的呼吁对象的方法来...红宝石

例如在"Hello".to_s.to_s需要"Hello"作为参数。

编辑:

谢谢你回答我的问题!

对于任何人想知道如何做到这一点,这里有一个例子:在您再次为例

+2

你为什么想这么做?这完全破坏了Ruby中OOP的目的。 – Waseem 2013-02-15 08:53:31

+0

我不知道,这是非常普遍的做法..我很好奇它是如何完成的。 – Abram 2013-02-15 08:54:56

+0

...我真的不明白你的意思。 – Abram 2013-02-15 08:55:20

回答

2

def double 
    self*2 
    end 

    2.double 
    =>4 

感谢,在to_s身体,你可以参考"Hello"使用self。如果这不是你要求的,你需要更好地描述你的问题。

+0

我相信这是适当的解决方案。但我也认为@Waseem是对的;这在Ruby中失败了OOP的目的。 – 2013-02-15 08:56:55

+0

这个问题可能会受到python的影响,其中'self'是任何方法的第一个参数(如果我没有记错的话,告诉我我是否错了)。 – ksol 2013-02-15 08:58:43

+0

谢谢你。正是我想要的。 – Abram 2013-02-15 20:56:21

4

您需要打开该类并对其进行扩展。

class String 
    def i_love 
    "I love #{self}" 
    end 
end 

"Pizza".i_love 
=> "I love Pizza" 
+0

谢谢你的回答。给予好评! – Abram 2013-02-15 21:07:13