Witam
Od wczoraj zaczełem nauke Rubiego. Dość dobrze ogarniam już C, ale to mi chyba wcale nie ulatwia pracy z rubim. Dzis napotkałem problem:
chcialbym wczytac taka linie
1 2 3 4 5
i z sumowac te cyfry, ale jakos tak nie wiem jak wczytywac ciag znakow tylko do spacji. Jest jakas metoda ? Czy moze trzeba wczytac cala linie, a potem dzialac jakos na stringu ?
Bede wdzieczny za jakiekolwiek rady albo link do artykulu, ktory opisuje wejscie/wyjscie lub operacje na stringach.
Zachowam się bardzo nie-dydaktycznie, bo podam rozwiązanie:
gets.split(" ").inject(0){|sum,element| sum + element.to_i}
A teraz po kolei
gets - pobiera jedną linię z wejścia
split(" ") - dzieli łańcuch na elementy w miejscu znaku spacji i zamienia na tablicę
inject - “wrzuca” do tablicy wartość początkową i przekazuje ją do bloku wraz z elementami tablicy (sum, element), do następnego kroku przekazywany jest wynik poprzedniej operacji
Piszę to dlatego, żebyś mógł zobaczyć “moc Rubiego” w stosunku do toporności C. Jeśli chodzi o materiały, to jest tego mnóstwo. Ludzie polecają “Learn to program with Ruby”, wiem, że ktoś to chyba chciał przetłumaczyć na polski. Dla osób, które programowały w językach obiektowych i chcą szybko zapoznać się z ciekawymi własnościami języka mogę polecić mój przewodnik.
Dziekuje za pomoc. Teraz bede mogl sie skupic na paru algorytmicznych problemach Narazie Ruby bardzo mi sie podoba szczegolnie ze wzgledu na naprawde ladnie wygladajacy kod. Obiecuje, ze przeczytam twoj przewodnik.