Ruby/Łańcuchy znakowe: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
Szymon wro (dyskusja | edycje) |
Szymon wro (dyskusja | edycje) |
||
Linia 13:
<pre>
irb(main):001:0> puts "a\nb\nc"
a
b
c
a\nb\nc
</pre>
Linia 40:
<pre>
</pre>
Konkatenacja łańcuchów w C jest bardziej kłopotliwa z powodu konieczności bezpośredniego zarządzania pamięcią:
<source lang="c">
char *s = malloc(strlen(s1)+strlen(s2)+1);
strcpy(s, s1);
Linia 54:
/* ... */
free(s);
</
W Rubim natomiast, nie musimy w ogóle zastanawiać się nad miejscem zajmowanym w pamięci przez łańcuch. Jesteśmy wolni od jakiegokolwiek zarządzania pamięcią.
Linia 62:
Konkatenacja:
<source lang="ruby">
</source>
Powtórzenie:
<source lang="ruby">
ruby> slowo = slowo * 2 #=> "foofoo"
</source>
Ekstrahowanie znaków (zauważ, że znaki w Rubim są liczbami całkowitymi):
<source lang="ruby">
</
(Wartości ujemne oznaczają liczbę znaków od końca łańcucha.)
Linia 87 ⟶ 85:
Ekstrahowanie podłańcuchów:
<source lang="ruby">
warzywo[0,1] #=> "p"
warzywo[0..3] #=> "piet"
warzywo[-5..-2] #=> "uszk"
</source>
Sprawdzanie równości:
<source lang="ruby">
</source>
▲ruby> "foo" == "bar"
Zróbmy użytek z kilku tych cech.
<source lang="ruby">
# zapisz to jako zgadnij.rb
slowa = ['fiolek', 'roza', 'bez']
Linia 128 ⟶ 119:
end
puts "Chodzilo o ", sekret, "."
</
Na razie nie przejmuj się za bardzo szczegółami powyższego kodu. Oto jak wygląda uruchomiona łamigłówka.
Linia 142 ⟶ 133:
</pre>
(
<noinclude>
{{ProstaNawigacja|spis=Ruby|poprzart=Ruby/Proste przykłady|poprz=Proste przykłady|nastart=Ruby/Wyrażenia regularne|nast=Wyrażenia regularne}}
|