Na pierwszych zajęciach zaprezentowano język Ruby. Zaczęliśmy od prostego wstępu do języka. Potem wprowadzono pojęcia dot. programowania obiektowego.
Podstawy
Żeby uruchomić interaktywnie Ruby piszemy irb
. Żeby uruchomić skrypt z pliku skrypt.rb piszemy ruby skrypt.rb
.
W ramach wstępu poznaliśmy metody puts
i print
. Metoda print
drukuje na ekranie parametr, zaś puts
dodatkowo stawia znak nowej linii. Poznaliśmy także najprostszą pętlę w Ruby. Oto drukowanie 10 liczb od 0 do 9 na dwa sposoby:
10.times do {|i| puts i}
10.times do |i| puts i end
Była też zaprezentowana instrukcja warunkowa if
:
if warunek wykonaj tylko, gdy warunek jest prawdziwy end
jak i forma skrócona
instrukcja if warunek
Przykład: wypisz liczby parzyste z zakresu od 0 do 9
10.times do |liczba| puts liczba if liczba % 2 == 0 end
gdzie procent oznacza resztę z dzielenia.
Programowanie obiektowe
Obiekt to jakiś byt posiadający właściwości i metody. Tyle formalna definicja. Przykładem obiektu jest na przykład samochód. Samochód może być duży, mały, zielony itp. Te wszystkie cechy mogą być właściwościami.
Klasa jest w pewnym sensie synonimem słowa rodzaj. w1 i w2 są klasy Wektor, więc oznacza to, że są to byty będące rodzaju wektor – czyli w1 i w2 to wektory. Klasa w Ruby jest zapisywana w postaci:
class Nazwa wnętrze end
W zaprezentowanym na zajęciach przykładzie tworzymy obiekt matematyczny wektor (para liczb). Właściwościami tego obiektu są te liczby.
Na obrazku widzimy przykładowy wektor wraz ze współrzędnymi. Widzimy, że współrzędna x wynosi 2, zaś współrzędna y wynosi 3. Do zapisu właściwości wewnątrz klasy używamy zapisu:
@x = 2 @x = 3
Na zewnątrz klasy, chcąc ustawić to samo, używamy formy:
w.x = 2 w.x = 3
gdzie w jest nazwą wektora. Do jej działania musimy napisać
attr_accessor :x, :y
Nowy wektor tworzymy, wywołując metodę new klasy:
w = Wektor.new
Jeżeli chcemy wymusić podanie pewnych wartości (wektor nie może istnieć bez x czy y), to stosujemy tzw. konstruktor
def initialize(:x, :y) treść end
Wtedy, żeby stworzyć wektor, musimy podać x i y.
w = Wektor.new(2, 3)
Ogólnie kropka służy do odwoływania się do części składowych obiektu/klasy:
puts samochod.dlugosc