od Podstaw
5 godz. 10 min · Ruby · Full-stack i Programowanie
Małgorzata ŁyczywekSoftware engineerW pierwszych lekcjach Kursu przejdziemy do omówienia konfiguracji środowiska, by następnie poznać tryb interaktywny Rubiego. Stworzymy pierwsze programy oraz poznamy składnię języka. Dowiesz się między innymi tego, czym są zmienne, jakie istnieją typy danych, jak przekazywać własne dane do programu i jak na nich operować.
Programy oraz instrukcje potrafią w znaczny sposób przyspieszyć i ułatwić pracę w Ruby. Mogą wykonywać za nas powtarzające się czynności i podejmować decyzje. Dlatego też kolejnym, naturalnym krokiem nauki języka Ruby jest poznanie struktur sterujących kodem, takich jak instrukcje warunkowe if, case, pętle while, until, for, each czy inne iteratory.
W kolejnych lekcjach poznasz następne, bardziej rozbudowane zagadnienia. Będziemy korzystać z zaawansowanych struktur danych i metod, jakie możemy na nich wykonywać. Są to metody wbudowane, a więc dostępne domyślnie w Ruby. Przejdziemy do pisania własnych metod dbając, by nasz kod był zgodny z regułą DRY. Poznamy zagadnienia związane ze strukturami specyficznymi dla języka Ruby a także praktykami, jakie są w tym języku stosowane.
Dane do programów najczęściej dotaczane są z zewnętrznego źródła, jak na przykład pobierane z pliku. Przekonasz się jak wykonywać operację na plikach w Ruby - odczytywać, zapisywać, a także w jaki sposób radzić sobie z dużymi plikami w wydajny sposób. Dowiemy się również co zrobić, gdy nasz program spotka niespodziewany błąd. Zajmiemy się przewidywaniem i zapobieganiem błędów w kodzie.
Kolejna, najbardziej obszerna część kursu to dokładne omówienie podstaw paradygmatu programowania obiektowego. Nawet jeżeli wydaje Ci się to bardzo skomplikowane - niedługo wszystko stanie się jasne. Programowanie obiektowe pozwala nam na lepsze odwzorowanie rzeczywistości, czyli tworzenie bardziej praktycznego kodu. Przyjrzymy się jak obiektowość jest realizowana w Ruby oraz jak tworzyć obiekty, klasy i jakich zasad warto przestrzegać. Na koniec dowiemy się jak rozszerzać funkcjonalność istniejących klas za pomocą modułów.
Ten kurs został przygotowany z myślą o wszystkich, którzy chcą zacząć naukę programowania Ruby od podstaw. Stworzono go szczególnie dla osób, które z pisaniem kodu nie miały jeszcze styczności. Nie jest wymagana żadna wcześniejsza wiedza na temat programowania. Jeśli chcesz szybko nauczyć się programowania i myślisz, że twoim kierunkiem jest tworzenie aplikacji webowych, to Ruby jest świetnym wyborem na start.
2.6+
Porozmawiamy jeszcze chwilę o iteratorach mieliśmy do
tej pory each który wykonuje kolejne iteracja w ogóle słowo
iterować oznacza po prostu powtarzać tę samą czynność wiele razy i
przykładowa metoda each wykonuje się zarówno na zakresie czyli
od 1 do 5 jak i na naszej tablicy names zresztą jak
wykonamy to już ten kod widzieliście jeżeli sobie weźmiemy ten
zakres 1 do 5 i sprawdzimy klasę a
także weźmiemy sobie po prostu names i sprawdzimy klasę literówka
names i sprawdzimy klasę a
no jeszcze wypadałoby to wyświetlić no to teraz już na pewno
to zobaczymy metodę że metoda class
zwróciła nam informacje o typie range czy o klasie range czyli typie
dla naszych tablic obie te klasy mają
metodę each dzięki czemu możemy iterować ale takich iteratorów
jest więcej i w budowanych iteratorów które mogą nam się przydać
na pewno jest iterator up to czyli możemy na przykład zrobić 10 up
to on się wykonuje do dziesiątki aż do jakiegoś elementu na
przykład 30 do element i-ty niech
nam się wyświetli i-ty element no i oczywiście end na zamknięcie bloku
uruchamiamy więc będzie się wykonać od 10 aż do 30
w górę no czyli musiało nam ładnie policzyć mamy
też odwrotność tego czyli po prostu down to czyli down
to ale teraz musimy dać pierwszą liczbę na pewno większą czyli powiedzmy 30
aż do niech będzie 15 trochę mniejszy
zakres zapisuje wykonuje od 30 lecimy
w dół aż do 15 oprócz tego jest
jeszcze taka metoda która może się przydać jest to metoda step czyli
chcę sobie na przykład dla dziesiątki coś wykonać
step i tutaj jako kolejny pokazuje
co ile coś ma się wykonać czyli wezmę sobie na przykład do
20 i step 2
czyli teraz będę wykonywać tą pętlę co dwa
kroki czyli 10 12 14 16 18
aż do 20 się wykona możemy też wykonywać taki krok jakby do
tyłu czyli podam rzeczywiście jako tą drugą wartość mniejszą
ale wtedy muszę podać warunek który będzie jakby cofał czyli teraz
będzie się wykonywać co 2 od 10 do 0 ale
minus 2 i jak widzimy 10 8 6 4
policzyło nam aż do zera ujemnie mamy
jeszcze iteratory end i all na przykład chciałabym
dla jakiejś tablicy 0 1 5
chcę sprawdzić czy wszystkie te liczby są
mniejsze równe i tutaj mogę wykonać albo do albo
skorzystać z nawiasów dla odmiany skorzystam z nawiasu czyli wezmę
sobie każdy z tych elementów item czy i i
sprawdzam że i czyli jest mniejsze równe 5 ten
iterator działa tak że każdy ten element sprawdzi w naszej tablicy
i zwróci prawdę jeśli wszystkie spełnią warunek czyli zapisuje
wykonuje i warunek jest spełniony więc jeśli wszystkie elementy są
mniejsze bądź równe 5 a tak jest to zwróci nam prawdę
gdyby to nie było mniejsze równe tylko mniejsze od 5 no to 5 by nie weszła i
pojawi nam się false no ale zakładamy że wszystkie są mniejsze równe innym
ciekawym iteratorem który też warto znać będzie any
czyli weźmiemy sobie taką samą właściwie naszą tablicę sprawdzę
any znak zapytania możemy wnioskować że
będzie zwracało również wartość prawda fałsz dla każdego elementu sprawdzimy
warunek czy którykolwiek z tych elementów jest
większy od sześciu albo
może niech może tak niech będzie od 6 ponieważ
wszystkie są mniejsze zwróci nam fałsz ale możemy zrobić czy którykolwiek z
nich jest większy równy 5 i w tym momencie jeden
z nich jest równy więc zwróci nam prawdę takich iteratorów
zwłaszcza tych zakończonych znakiem zapytania jest znacznie więcej dla różnych typów danych więc warto
sobie zajrzeć do dokumentacji
any_all · 4 min
p [0,2,5].all? { |i| i <= 5 }
p [0,2,5].any? { |i| i >= 5 }step · 3 min
10.step(20, 2) do |i|
puts i
end
10.step(0, -2) do |i|
puts i
enddownto · 2 min
30.downto 15 do |i|
puts i
endupto · 1 min
10.upto 30 do |i|
puts i
enditeratory
(1..5).each { |i| puts i }
names = ['Ada', 'Julia ','Ruby']
names.each { |n| puts "Hello #{n}!" }
p (1..5).class
p names.class