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

Wypisywanie bez znaku nowej linii

W lekcji 3 widzieliście, że każde wywołanie puts automatycznie rozpoczyna nowy wiersz po wyświetleniu treści. To dobrze, gdy chcesz uzyskać trzy wiersze wyniku. Gorzej jednak, gdy chcesz, aby trzy fragmenty tekstu były połączone w jednym wierszu.

Spróbuj tego:

puts "Wynik: "
puts 10

Wynik:

Wynik:
10

Prawdopodobnie chciałeś uzyskać Wynik: 10 w jednym wierszu. Przeszkodził ci niewidoczny znak końca wiersza z puts.

W tej lekcji dowiesz się, jak wyświetlać tekst bez przechodzenia do nowego wiersza po jego wyświetleniu, używając print, oraz kiedy faktycznie jest to lepsze rozwiązanie niż puts.

print działa niemal dokładnie tak samo jak puts. Przyjmuje tekst w cudzysłowach i wyświetla go na ekranie. Jedyna różnica: nie dodaje znaku końca wiersza na końcu.

Oznacza to, że cokolwiek wypiszesz potem za pomocą print lub puts, pojawi się bezpośrednio po tym, w tym samym wierszu.

Przyklady

print "Hello, "
print "world!"

Wynik:

Hello, world!

Mamy dwa oddzielne wywołania print, ale wynik wygląda jak jedno zdanie. Nic nie spowodowało przejścia drugiego fragmentu tekstu do nowej linii, więc znalazł się on bezpośrednio po pierwszym.

Zwróć uwagę na dodatkową spację po Hello,

Teraz połącz print i puts w tym samym kodzie i pamiętaj o lekcji 4: Ruby wykonuje te linie od góry do dołu, dokładnie w tej kolejności.

print "Wynik: "
puts 10
puts "Koniec gry"

Wynik:

Wynik: 10
Koniec gry

Funkcja print umieściła Wynik: w wierszu bez znaku końca wiersza. Następnie puts 10 wyświetliło 10 zaraz po tym, w tym samym wierszu, i dopiero wtedy dodało własny znak końca wiersza. Kolejne puts rozpoczęło się od nowa w nowym wierszu.

Dlaczego?

Funkcje puts i print pełnią zasadniczo tę samą funkcję: wyświetlają coś na ekranie. Jedyna różnica polega na tym, co dzieje się potem. Funkcja puts zawsze dodaje niewidoczny znak końca linii (tak jakbyś na końcu kliknął ENTER). Funkcja print nigdy tego nie robi.

Ta jedna różnica decyduje o tym, którą z nich wybrać. Potrzebujesz czystego, oddzielnego wiersza dla każdego wywołania puts? Użyj puts. Chcesz utworzyć jeden wiersz z kilku elementów, na przykład "Wynik: ", po którym następuje liczba? Użyj print.

Typowe błędy

Używanie print w każdym wierszu, co skutkuje powstaniem jednego długiego bloku tekstu. Jeśli napiszesz kilka wywołań print pod rząd bez użycia puts, wszystko połączy się w jedną całość bez żadnych odstępów.

Oczekiwanie, że print doda spację między fragmentami. print „Hello”, a po nim print „world” daje wynik Helloworld, a nie Hello world. print nie dodaje niczego dodatkowego – ani spacji, ani znaku końca linii. Jeśli chcesz mieć spację, musisz wpisać ją samodzielnie, wewnątrz cudzysłowów.

Podsumowanie

  • print wyświetla tekst na ekranie, tak samo jak puts.
  • print nie dodaje po sobie znaku końca linii, natomiast puts zawsze to robi.
  • Kilka wywołań print pod rząd trafia do tej samej linii, jedno po drugim.
  • print nie dodaje też spacji; drukowane jest tylko to, co znajduje się w cudzysłowach.
  • Używaj puts, aby wyświetlać treść w osobnych wierszach, a print, gdy chcesz, aby fragmenty pozostały w jednym wierszu.

Ćwiczenie

Zadanie programistyczne

Napisz kod wykorzystujący funkcje print i puts, który wyświetli dokładnie taki wynik, w dwóch wierszach:

Imię: Patryk
Wiek: 25

Następnie napisz drugą wersję, w której zamienisz wszystkie wystąpienia print na puts, a wszystkie wystąpienia puts na print. Uruchom kod i opisz w jednym zdaniu, jak zmienił się wynik.

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

Quiz

1.

Uruchom ten kod:

print "A"
print "B"
print "C"

Co pojawi się w panelu wyników?

2.

Jaka jest rzeczywista różnica między puts a print?

3.

Napisałeś następujący kod:

print "Total: "
puts 42

Jak będzie wyglądał wynik?