Polecam http://rubykoans.com/. Dobra rzecz, aby zacząć naukę Ruby i od razu nabierać pewnych pozytwnych nawyków (TDD). Dobra rzecz, aby przypomnieć sobie niektóre niuanse naszego ulubionego języka.
first_name, = ["John", "Doe"]
p first_name #=> ?
Polecam http://rubykoans.com/. Dobra rzecz, aby zacząć naukę Ruby i od razu nabierać pewnych pozytwnych nawyków (TDD). Dobra rzecz, aby przypomnieć sobie niektóre niuanse naszego ulubionego języka.
first_name, = ["John", "Doe"]
p first_name #=> ?
tak jak napisałem w mailu do Ciebie, taka składnia jest ble, fu i zmyli nie jednego programistę… ale to tylko moje zdanie ;).
first_name, last_name = ["John", "Doe"]
ma już większy sens.
Moje też.
Takie sztuczki zemszczą się na samym autorze jak tylko tydzień później będzie usiłował poprawić jakiś błąd w swoim kodzie.
Podoba/nie podoba się rubykoans? Co sądzicie o takim sposobie poznawania Ruby? Może znacie inne tego typu kursy? Dobrze czasem mieć pod ręką parę sprawdzonych linków dla początkujących.
PS Kod wrzuciłem jako taki lekki teaser. Osobiście w takim wypadku wolę
first_name = ["John", "Doe"].first
niż tworzyć kolejną zmienną lokalną.
Moje propozycje
first_name = ["John", "Doe"].clone.shift
first_name = ["John", "Doe"].clone.reverse.pop
first_name = "John" # najbardziej mi się podoba
[quote=paneq]Moje propozycje
first_name = ["John", "Doe"].clone.shift
first_name = ["John", "Doe"].clone.reverse.pop
first_name = "John" # najbardziej mi się podoba
[/quote]
Ale po co w ogóle takie rozwiązanie? Jak mamy przypisanie tego rodzaju, to najbardziej przejrzyście jest osobno przypisać imię, osobno nazwisko.
Konstrukcje typu a,b,c = cośtam, mają uzasadnienie, jeśli dostajemy tablicę, z której coś tam sobie od razu chcemy wyodrębnić, np.
first_name, last_name = name.split(" ")
W innych przypadkach to tylko zaciemnianie idei programisty - coś do czego Rubi zdecydowanie nie został stworzony. Znacznie lepiej można to zrobić w C i assemblerze