Komentarze #, uwagi, których Ruby nie odczytuje
Tydzień temu napisałeś program. Otwierasz go dzisiaj i widzisz to:
print "Wynik: "
puts 10
puts 12
Skąd te dwie liczby? Która z nich to wynik, a która to coś innego? Sam to napisałeś, a teraz już nie masz pojęcia.
Jest jeszcze drugi problem, bardziej aktualny. Masz trzy linijki z puts i chcesz sprawdzić, jak wygląda wynik bez środkowej z nich. Usunięcie jej działa, ale potem musisz ją wpisać od nowa. I na pewno popełnisz błąd.
W tej lekcji dowiesz się, jak zostawiać w kodzie adnotacje, które Ruby pomija, oraz jak wyłączyć działanie linii bez jej usuwania.
Znak # mówi Ruby’emu: zignoruj wszystko od tego miejsca do końca tej linii.
To cała zasada. Ruby odczytuje linię, napotyka znak # i przeskakuje od razu do następnej linii. Cokolwiek umieścisz po znaku #, jest przeznaczone dla osób czytających kod, a nie dla Ruby’ego.
Komentarz może zajmować całą linię lub znajdować się na końcu linii zawierającej kod wykonawczy.
Przyklady
# Ten program wyświetla pozdrowienie
puts "Hello!"
puts "Nice to see you" # to pojawi się w drugim wierszu
Wynik:
Hello!
Nice to see you
Pierwszy wiersz to komentarz, więc nic z niego nie zostało wyświetlone. Trzeci wiersz został wyświetlony normalnie, a tekst po znaku # został pominięty. Ruby zignorował tylko część zaczynającą się od znaku #, a nie całą linię.
Teraz sztuczka, której będziesz używać nieustannie. Pamiętaj o lekcji 4: Ruby wykonuje linie od góry do dołu. Umieść znak # przed linią, a zostanie ona pominięta w tej sekwencji.
puts "Krok pierwszy"
# puts "Krok drugi"
puts "Krok trzeci"
Wynik:
Krok pierwszy
Krok trzeci
Środkowy wiersz nadal znajduje się w pliku. Możesz go przeczytać, nie zniknął. Ruby po prostu go pominął. Usuń znak #, a wiersz znów zacznie działać.
Nazywa się to komentowaniem kodu. W praktyce będziesz to robić za każdym razem, gdy zechcesz sprawdzić: "czy to nadal działa bez tego wiersza?".
Dlaczego?
Dwa różne zadania, jedna postać.
Pierwszym zadaniem jest wyjaśnienie. Nie tego, co robi dana linia kodu – to zazwyczaj widać – ale dlaczego się tam znajduje. puts 10 jest oczywiste. puts 10 # punkty za poprawną odpowiedź przekazuje informację, której sam kod nie jest w stanie przekazać.
Drugim zadaniem jest tymczasowe wyłączenie kodu. Jest to szybsze niż usuwanie i bezpieczniejsze, ponieważ nie można pomylić się przy wpisywaniu linii, której nigdy nie usunięto.
To notatka przyklejona do strony.
Typowe błędy
Oczekiwanie, że znak # skomentuje kilka wierszy naraz. Znak # działa tylko do końca własnego wiersza. Umieszczenie go raz nad blokiem trzech wierszy skomentuje dokładnie jeden z nich – ten, na którym się znajduje.
Myślenie, że znak # wewnątrz cudzysłowów rozpoczyna komentarz. Tak nie jest. Wewnątrz „...” wszystko jest po prostu tekstem.
puts "Użyj #, aby napisać komentarz"
Wynik:
Użyj #, aby napisać komentarz
Ruby wyświetla znak # tak samo jak każdy inny znak. Komentarz zaczyna się dopiero wtedy, gdy znak # znajduje się poza cudzysłowami.
Wykomentowanie linii i zapomnienie o tym. Wyłączasz jedno puts, aby coś przetestować, a potem przechodzisz dalej. Trzy dni później w wynikach brakuje jednej linii i szukasz błędu, który nie istnieje. Rozwiązanie: gdy wynik wydaje się niekompletny, najpierw przeszukaj plik pod kątem znaku #.
Wyjaśnianie rzeczy oczywistych. puts „Hi” # wyświetla „Hi” nie wnosi nic nowego. Kod już to powiedział. Komentarz ma sens wtedy, gdy zawiera informację, której kod nie jest w stanie przekazać.
Podsumowanie
- Znak
#powoduje, że Ruby ignoruje wszystko od tego miejsca do końca wiersza. - Komentarz może zajmować cały wiersz lub znajdować się na końcu wiersza zawierającego kod.
- Każdy wiersz wymaga własnego znaku
#; jeden znak nie obejmuje wierszy poniżej. - Wykomentowanie wiersza powoduje jego wyłączenie bez usuwania go.
- W cudzysłowach znak
#jest zwykłym tekstem, a nie komentarzem.
Ćwiczenie
Zadanie programistyczne
Weźmy ten kod:
puts "Coffee"
puts "Tea"
puts "Water"
- Dodaj na początku komentarz wyjaśniający, co robi ten program.
- Zakomentuj wiersz
Teai uruchom program. Sprawdź wynik. - Przywróć wiersz
Tea, a zamiast niego zakomentuj wierszCoffee. Uruchom program ponownie. - Na końcu jednego z wierszy dodaj komentarz wyjaśniający, dlaczego dany napój znajduje się na liście (wymyśl coś).
Zadanie dodatkowe: napisz wiersz, który wyświetli na ekranie tekst # not a comment, łącznie ze znakiem #.
Tutaj pojawi się wynik działania Twojego programu.