2013-10-29 31 views
1

在Ruby中,你可以使用Array()包装元素空数组,如果它是不是已经是一个数组:如何在Ruby中使用类似于Array()的方法(没有点语法)?

Array(2) => [2] 
Array([2, 3]) => [2, 3] 

我如何定义像我自己的自定义类中的方法?像Foo()?我在网上很难找到它,因为我不知道这里到底发生了什么。

+0

'foo'会返回什么? –

+0

没关系,只是想知道如何定义方法。 –

+0

你需要在'foo'内写入什么行为? –

回答

4

Array()是在Kernel模块中定义的私有方法。所以,如果您希望自定义Foo()方法,在同样的方式工作,你可以这样做:

module Kernel 

    private 

    def Foo(*args) 
    # code 
    end 
end 

你也可以在Object类中定义此方法,因为Kernel是混合到Object,就没有差别。

+0

我认为'Foo'应该是一个私有方法,如果OP想把它称为'数组(2)'..as'Foo(2)'...也是。作为'Kernel.private_instance_methods.grep(/ Array /) #=> [:Array]''.. –

+0

@ArupRakshit感谢您的建议,我相应地编辑了我的anwer。 –

相关问题