Cześć.
Dzisiaj zacząłem naukę Rubyego jednak mam problem ze zrozumieniem iteracji po tablicy.
Ogólnie rzecz biorąc przerobiłem już tematy poszczególnych pętli jednak mam problem z tym zapisem:
array.each do |i|
puts "Element w tablicy = #{element}"
end
Czy byłby ktoś tak miły i wyjaśnił dokładnie co do czego :)?
Tutaj jest jeszcze takie zadanie odnośnie tej literacji
Zapisz do zmiennej sum sumę wszystkich elementów tablicy numbers (tablica jest już stworzona).
Byłbym bardzo wdzięczny za pomoc, liczę na to że ktoś mi to fajne to wytłumaczy
Ten zapis jest bardzo prosty. array jest twoją kolekcją, w tym przypadku tablicą, która posiada metodę nazwaną .each
Metoda ta bierze jeden argument którym jest coś co nazywa się blokiem.
W Rubym bloki zapisujemy na 2 sposoby:
{ |foo| bar }
albo
do |foo|
bar
end
Według konwencji pierwszy zapis stosuje się gdy blok jest jednolinikowy a drugi zapis gdy wielolinijkowy.
Blok to taki specyficzny zapis funkcji która zostanie przekazana do eacha. Między pałeczkami podajesz jej argumenty (foo z przykładu) a następnie jej ciało (bar z przykładu). To co zrobi .each to weźmie twoją kolekcję - czyli array, i będzie brał po kolei każdy element i wywoływał tę funkcję z tym elementem.
Innymi słowy dla każdego elementu wywołany zostanie blok z danym elementem jako parametr.
[1,2,3].each { |i| puts i }
#> 1
#> 2
#> 3
jest praktycznie równoważne z
def foo(i)
puts i
end
a = [1,2,3]
foo(a[0])
foo(a[1])
foo(a[2])
Niestety nic z tego nie rozumiem, dzisiaj zacząłem naukę i…
Patrz tutaj tak jest to przedstawione: array = [0, 1, 2, 3, 4] for element in array puts "Element w tablicy = #{element}" end
i mam zrobić takie zadanie; Zapisz do zmiennej sum sumę wszystkich elementów tablicy numbers (tablica jest już stworzona)
Masz zbiór liczb, który nazywa się array składa się on się z liczb 0,1,2,3,4 for i in array
znaczy tyle, co dla każdego elementu zbioru array nazwij element tego zbioru i
puts "Element w tablicy = #{i}"
znaczy tyle, co dla kazdego elementu array wyświetl taki napis ‘Element tablicy =’ + wartość zmiennej i czyli kolejno 0,1,2,3,4
end
To jest miejsce w którym konczy się pętla for i in array
Tablica ma tetodę .each, która po kolei bierze każdy element, w naszym przypadku numer z tablicy i coś z nim robi. Na początek wyświetlimu sobie każdy elemet tablicy:
numery.each do |numer|
puts "Moj numer to: #{numer}"
end
Analogicznie do tego można dodawać numery do zmiennej sum.
sum = 0
numery.each do |numer|
sum = sum + numer
end
puts "Suma: #{sum}"
tą linijkę: sum = sum + numer można zastąpić sum += numer