k_ kodly
Wróć do kursu
Ruby od zera do własnej aplikacji

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"
  1. Dodaj na początku komentarz wyjaśniający, co robi ten program.
  2. Zakomentuj wiersz Tea i uruchom program. Sprawdź wynik.
  3. Przywróć wiersz Tea, a zamiast niego zakomentuj wiersz Coffee. Uruchom program ponownie.
  4. 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 #.

solution.rb
wynik
Tutaj pojawi się wynik działania Twojego programu.
Sprawdź się

Quiz

1.

Uruchamiasz ten kod:

puts "A"
# puts "B"
puts "C"

Co pojawi się w panelu wyników?

2.

Chcesz wyłączyć trzy kolejne wiersze z puts. Umieszczasz pojedynczy znak # w wierszu powyżej wszystkich trzech. Co się stanie?

# chce wylaczyc te linie
puts "a"
puts "b"
puts "c"
3.

Program znajomego wyświetla tylko dwa wiersze zamiast czterech. Nie ma komunikatu o błędzie. Na podstawie tej lekcji i lekcji 4, co warto sprawdzić w pierwszej kolejności?