Ruby/Powrót do prostych przykładów: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje)
Szymon wro (dyskusja | edycje)
Linia 94:
Wielu programistów uważa, że utworzenie on pojedynczego łańcucha jako argumentu metody ''puts'' to czytelniejszy sposób formułowania wyjścia.
 
MyRównież również,my od teraz stosujemy pomysł z używaniem ''puts'' do standardowego wyjścia naszego skryptu, ale ten skrypt używa również ''print'' zamiast ''puts'', w liniach 4 i 13. ''puts'' i ''print'' nie oznaczają dokładnie tego samego. ''print'' wyświetla dokładnie to, co jest podane; ''puts'' ponadto zapewnia, że linia na wyjściu posiada znak końca linii. Używanie ''print'' w liniach 4 i 13 ustawia kursor dalej, poza uprzednio wydrukowanym tekstem zamiast przenosić go na początek następnego wiersza. Tworzy to rozpoznawalny znak zachęty do wprowadzania danych przez użytkownika.
 
W ogóle, cztery wywołania wyjścia poniżej są równoważne:
Linia 101:
# nowa linia jest automatycznie dodawana przez puts, jeżeli znak nowej linii jeszcze nie wystąpił:
puts "Darwin's wife, Esmerelda, died in a fit of penguins."
 
</pre>
# znak nowej linii musi być jawnie dodany do polecenia print:
<pre>
# newline must be explicitly given to the print command:
print "Darwin's wife, Esmerelda, died in a fit of penguins.\n"
 
# możesz dodawać wyjście stosując +:
print '"Darwin's wife, Esmerelda, died in a fit of penguins.'" + "\n"
 
# lub możesz dodawać podając więcej niż jeden łańcuch:
print '"Darwin's wife, Esmerelda, died in a fit of penguins.'", "\n"
</pre>
 
<pre>
# you can concatenate output with +:
print 'Darwin's wife, Esmerelda, died in a fit of penguins.'+"\n"
</pre>
<pre>
# or concatenate by supplying more than one string:
print 'Darwin's wife, Esmerelda, died in a fit of penguins.', "\n"
</pre>
One possible gotcha: sometimes a text window is programmed to buffer output for the sake of speed, collecting individual characters and displaying them only when it is given a newline character. So if the guessing game script misbehaves by not showing the prompt lines until after the user supplies a guess, buffering is the likely culprit. To make sure this doesn't happen, you can flush the output as soon as you have printed the prompt. It tells the standard output device (an object named STDOUT), "don't wait; display what you have in your buffer right now."