2016-04-08 9 views
2

In diesem Code:Wie stelle ich fest, wo die Integer (string) Methode gehört?

Integer("1234") 

Ist Integer ein Verfahren zur Herstellung eines Moduls oder Klasse? Wie kann ich die Dokumentation sehen?

Wenn ich schreibe Code wie:

"1234".to_i 

ich einfach ri to_i in Kommando-Shell zu sehen, die interne Dokumentation des Verfahrens to_i nutzen könnten.

+3

'p-Methode (: Integer) .owner # => kernel ' – cremno

Antwort

2

Dies ist die Kernel#Integer Methode. Die meisten Methoden, die Sie überall ohne expliziten Aufruf verwenden können (wie Integer, Array, puts, sleep, usw.) gehören zu Kernel. Sie können die Dokumentation dafür anzeigen, indem Sie ri Kernel#Integer oder als Abkürzung ri #Integer oder ri .Integer eingeben.

+0

Meine Lesart der Frage ist, dass OP ist zu fragen, wie jedes Verfahren des Besitzers zu finden (wie @cremno in einem Kommentar vorgeschlagen),' Integer' nur ein Beispiel sein. Beachten Sie auch das zweite Beispiel, "1234" .to_i ". (Hmmm, vielleicht nicht. Ich lese gerade den Titel der Frage. Meine Interpretation ist interessanter.) –

+0

Vielen Dank für die Antwort. Ich habe versucht, Methode, aber es funktioniert nicht, ri. Methode hat gut funktioniert. –

0

Um festzustellen, ob es sich um eine Methode oder eine Konstante handelt, müssen Sie nichts weiter sehen.

Eine Konstante (einschließlich Klasse) nimmt niemals ein Argument. Also, wenn Sie ein Formular mit Klammern siehe:

Foo() 
Foo(some_argument) 

können Sie sofort sagen, es ist ein Methode Anruf.

Und eine Methode, die potenziell mehrdeutig mit einer Konstante ist erfordert Klammern (auch wenn es kein Argument gibt). Deshalb, wenn Sie ein Formular ohne Klammern sehen:

Foo 

Sie sofort sagen kann, es ist eine Konstante (wie eine Klasse).

Um festzustellen, wo die Methode definiert ist, ist der Standardweg owner zu verwenden.

method(:Integer).owner # => Kernel 
Verwandte Themen