Ruby/Łańcuchy znakowe: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje)
Nie podano opisu zmian
Szymon wro (dyskusja | edycje)
Linia 46:
</pre>
 
Konkatenacja łańcuchów w C jest bardziej kłopotliwa w C z powodu konieczności bezpośredniego zarządzania pamięcią:
 
<pre>
Linia 56:
</pre>
 
W Rubim natomiast, nie musimy w ogóle zastanawiać się nad miejscem zajmowanym w pamięci zajmowanym przez łańcuch. Jesteśmy wolni od jakiegokolwiek zarządzania pamięcią.
 
Oto kilka rzeczy, które możesz zrobić z łańcuchami.
Linia 63:
 
<pre>
ruby> wordslowo = "fo" + "o"
"foo"
</pre>
Linia 70:
 
<pre>
ruby> wordslowo = wordslowo * 2
"foofoo"
</pre>
Linia 77:
 
<pre>
ruby> wordslowo[0]
102 # 102 jest kodem ASCII znaku `f'
ruby> wordslowo[-1]
111 # 111 jest kodem ASCII znaku `o'
</pre>
Linia 88:
 
<pre>
ruby> herbwarzywo = "parsleypietruszka"
"parsleypietruszka"
ruby> herbwarzywo[0,1]
"p"
ruby> herb[-2,2]
"eyka"
ruby> herb[0..3]
"parspiet"
ruby> herb[-5..-2]
"rsleuszk"
</pre>
 
Linia 112:
 
<pre>
# zapisz to jako guesszgadnij.rb
wordsslowa = ['foobarfiolek', 'bazroza', 'quuxbez']
secretsekret = wordsslowa[rand(3)]
 
print "guesszgadnij? "
while guessodp = STDIN.gets
guessodp.chop!
if guessodp == secretsekret
puts "You winWygrales!"
break
else
puts "Sorry,Przykro youmi, loseprzegrales."
end
print "guesszgadnij? "
end
puts "TheChodzilo word waso ", secretsekret, "."
</pre>
 
Linia 133:
 
<pre>
% ruby guesszgadnij.rb
zgadnij? fiolek
guess? foobar
Przykro mi, przegrales.
Sorry, you lose.
zgadnij? bez
guess? quux
Przykro mi, przegrales.
Sorry, you lose.
guess? ^D
Chodzilo o roza.
The word was baz.
</pre>