Ruby/Proste przykłady: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Kj (dyskusja | edycje)
mNie podano opisu zmian
Szymon wro (dyskusja | edycje)
mNie podano opisu zmian
Linia 10:
W Rubim mozemy ją napisać w następujący sposób:
 
<source lang="ruby">
<pre>
def fact(n)
if n == 0
Linia 18:
end
end
</presource>
 
Warto zauważyć powtarzające się wyrażenie ''<tt>end''</tt>. Ruby nazywany jest przez to "Algolopodobnym" językiem programowania. (Właściwie składnia Rubiego bardziej przypomina inny język Eiffel.) Można także zauważyć brak wyrażeń ''<tt>return''</tt>. Nie są one potrzebne, ponieważ funkcje w rubyRubim zwracają ostatnie wartości, które były w niej liczone. Używanie tutaj wyrażenia ''<tt>return''</tt> jest dozwolone, lecz niepotrzebne.
 
Wypróbujmy naszą funkcję silniisilni. Dodanie jednej linii kodu daje nam działający program:
 
<source lang="ruby">
<pre>
# Program, ktory liczy wartosc silnii z danej liczby
# Zapisz go jako fact.rb
Linia 37:
 
puts fact(ARGV[0].to_i)
</presource>
 
''<tt>ARGV''</tt> jest tutaj tablicą zawierającą argumenty linii poleceń, a ''<tt>to_i''</tt> konwertuje łańcuch na liczbę całkowitą.
 
<pre>
Linia 83:
Kiedy wywołasz Rubiego bez argumentów, wczyta on komendy ze standardowego wejścia i wykona je po zakończeniu wprowadzania:
 
<source lang="ruby">
<pre>
% ruby
puts "hello world"
Linia 90:
hello world
good-bye world
</presource>
 
Znak ''<tt>^D''</tt> powyżej oznacza control-D, wygodny sposób to sygnalizowania, że wprowadzanie zostało zakończone w systemach Uniksowych. W DOS/Windows, spróbuj użyć F6 lub ^Z.
 
Ruby zawiera również program zwany eval.rb który pomaga wprowadzać kod bezpośrednio z klawiatury w interaktywnej pętli, pokazując na bieżąco rezultaty. Będzie on intensywnie używany przez resztę tego podręcznika.
 
Jeżeli masz terminal zgodny z ANSI (co prawie na pewno jest prawdą, jeżeli pracujesz pod jakimś systemem z rodziny UNIX; pod starymi wersjami DOSa potrzebujesz mieć zainstalowany ANSI.SYS lub ANSI.COM; Windows XP, niestety, uczynił to prawie niemożliwym), powinieneś używać rozszerzonej wersji ''eval.rb'', która dodaje wizualne wsparcie dla wcięć, raportuje ostrzeżenia oraz używa kolorowego podświetlania. W przeciwnym wypadku, poszukaj w podkatalogu z przykładami twojej dystrybucji Rubiego wersji bez ANSI która działa na każdym terminalu. Oto krótka sesja z ''eval.rb'':
 
<source lang="ruby">
<pre>
% ruby eval.rb
ruby> puts "Hello, world."
Linia 104:
nil
ruby> exit
</presource>
 
"Hello world" jest wypisane przez ''<tt>puts''</tt>. Następna linia, w tym przypadku ''<tt>nil''</tt>, pokazuje cokolwiek co zostało obliczone jako ostatnie. Ruby nie rozróżnia instrukcji i wyrażeń, więc obliczanie kawałka kodu oznacza jest równoważne z jego wykonaniem. Tutaj, ''<tt>nil''</tt> oznacza, że ''<tt>puts''</tt> nie zwraca żadnej(znaczącej) wartości. Zauważ, że możemy opuścić pętlę interpretatora przez wpisanie ''<tt>exit''</tt>, chociaż ^D również zadziała.
 
W dalszej części podręcznika, "ruby>" oznaczać będzie znak zachęty naszego małego, pożytecznego programu ''eval.rb''.