Ruby/Łańcuchy znakowe: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Linia 56:
</pre>
Ale używając Rubiego, nie musimy zastanawiać się nad miejscem w pamięci zajmowanym przez łańcuch. W ogóle jesteśmy wolni od jakiegokolwiek zarządzania pamięcią.
Oto kilka rzeczy, które możesz zrobić z łańcuchami.
Konkatenacja:
<pre>
ruby> word = "fo" + "o"
"foo"
</pre>
Powtórzenie:
<pre>
ruby> word = word * 2
"foofoo"
</pre>
Ekstrahowanie znaków (zauważ, że znaki w Rubim są liczbami całkowitymi (integer)):
<pre>
ruby> word[0]
102 # 102
ruby> word[-1]
111 # 111
</pre>
(Wartości ujemne oznaczają liczbę znaków od końca łańcucha.)
Ekstrahowanie podłańcuchów:
<pre>
ruby> herb = "parsley"
"parsley"
Linia 91 ⟶ 98:
ruby> herb[-5..-2]
"rsle"
</pre>
Sprawdzanie równości:
<pre>
ruby> "foo" == "foo"
true
ruby> "foo" == "bar"
false
</pre>
Zróbmy użytek z kilku tych cech. Ta układanka to "co to za słowo", ale być może słowo "układanka" jest zbyt dużo dla następującego kodu ;-)
<pre>
#
words = ['foobar', 'baz', 'quux']
secret = words[rand(3)]
Linia 117 ⟶ 128:
end
puts "The word was ", secret, "."
</pre>
Na razie nie przejmuj się za bardzo szczegółami powyższego kodu. Oto jak wygląda uruchomiona układanka.
<pre>
% ruby guess.rb
guess? foobar
Linia 127 ⟶ 140:
guess? ^D
The word was baz.
</pre>
(Powinno mi pójść nieco lepiej biorąc pod uwagę, że prawdopodobieństwo sukcesu wynosi 1/3.)
|