Sequenceとは

http://iolanguage.com/scm/git/checkout/Io/docs/IoGuide.html#Sequence勝手に和訳プロジェクト、まだまだ行きます。

Sequence
Ioでは、Symbolと呼ぶ不変Sequenceと、BufferやStringと同等な可変Sequenceがあります。文字列(ソースコード内で""で囲まれたものが一例)はSymbolです。変更操作はSymbolでは実行されないので、asMutableメソッドでSymbolの可変なコピーを作成し、そのコピーに対して変更操作を実行します。共通して、文字列の長さを取得する操作があります。

"abc" size
==> 3

部分一致をチェック:

"apples" containsSeq("ppl")
==> true

位置Nの文字(byte)を取得:

"Kavi" at(1)
==> 97

スライス:

"Kirikuro" slice(0, 2)
==> "Ki"

"Kirikuro" slice(-2)  # NOT: slice(-2, 0)!
==> "ro"

Io> "Kirikuro" slice(0, -2)
# "Kiriku"

スペース除去:

"  abc  " adMutable strip
==> "abc"

"  abc  " asMutable lstrip
==> "abc  "

"  abc  " asMutable rstrip
==> "  abc"

大文字/小文字変換:

"Kavi" asUppercase
==> "KAVI"
"Kavi" asLowercase
==> "kavi"

文字列の分割:

"the quick brown fox" split
==> list("the", "quick", "brown", "fox")

同様に、他の文字で分割も可能:

"a few good men" split("e")
==> list("a f", "w good m", "n")

数値へ変換:

"13" asNumber
==> 13

"a13" asNumber
==> nil

文字列の差込:

name := "Fred"
==> Fred
"My name is #{name}" interpolate
==> My name is Fred

差込は#{}で囲まれた全てを、Ioのローカル文脈のコードとして評価します。コードには制御構文も記述できますが、asStringに反応するオブジェクトを返却する必要があります。

ちなみに、文字列の結合は".."で。

Io> "hoge" .. "fuga"
==> hogefuga