Ruby/Metody: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Nie podano opisu zmian |
Szymon wro (dyskusja | edycje) |
||
Linia 25:
</pre>
To co rozumiemy przez długość może się różnić w zależności od rodzaju obiektu do którego mówimy. Za
<pre
Linia 45:
</pre>
Tak więc niezbędne jest wiedzieć, które metody są akceptowane przez obiekt, chociaż nie potrzebujemy wiedzieć jak te metody są przetwarzane.
Jeżeli przekazujemy do metody jakieś argumenty, zazwyczaj są one otoczone przez nawiasy okrągłe,
<pre>
object.method(arg1, arg2)
</pre>
ale mogą one zostać ominięte jeżeli, nie stanie się to przyczyną dwuznaczności.
<pre>
object.method arg1, arg2
</pre>
Jest pewna specjalna zmienna w Rubim - <tt>self</tt>. Odnosi się ona tylko do obiektu na rzecz którego wywołujemy metodę. Dzieje się to tak często, że dla wygody "<tt>self.</tt>" może być opuszczone w metodach odwołujących się z danego obiektu do samego siebie:
<pre>
self.method_name(args...)
</pre>
oznacza to samo co
<pre>
method_name(args...)
</pre>
To co tradycyjnie nazwalibyśmy wywołaniem funkcji jest po prostu skróconą formą zapisywania wywołań metod przez <tt>self</tt>. To właśnie czyni z Rubiego czysto obiektowy język programowania. Ponadto metody funkcjonalne nadal zachowują się całkiem podobnie do funkcji w innych językach programowania. Jest to pewną korzyścią dla tych, którzy nie rozumieją, że w Rubim wywołania funkcji są tak naprawdę w wywołaniami metod obiektów. Jeśli chcemy, możemy traktować funkcje tak jakby nie były one naprawdę metodami obiektów.
<noinclude>
{{ProstaNawigacja|spis=Ruby|poprzart=Ruby/Myślenie zorientowane obiektowo|poprz=Myślenie zorientowane obiektowo|nastart=Ruby/Klasy|nast=Klasy}}
|