2013-10-29 58 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。 –

相關問題