Swiff 基礎文法最速マスター (他の型と操作編)
文字・文字列
Swiff の文字列型は UTF-8 文字の配列、コレクションまたはシーケンスに見えます。
文字列リテラル、文字リテラルは以下のように書きます:
let a = "Hello, World!" // 文字列 let b = '*' // 文字
文字列操作
各種文字列操作です。
これらの操作は String
のインスタンスメソッドとして定義されています。
長さ
length
と size
の好きな方を使用できます。
"Hello, World!".length // => 13 (文字数) "あいうえお".size // => 5 (文字数) "Hello, World!".byte_length // => 13 (バイト数) "あいうえお".byte_size // => 15 (バイト数)
検索
"Hello, World!".index_of( "W" ) // => 7 "Hello, World!".include?( "ll" ) // => true "Hello, World!".contains?( ", " ) // => true
結合
"Hello, ".concat( "World!" ) // => "Hello, World!" "Hello, " + "World!" // => "Hello, World!" [ "Hello", "World!" ].join( ", " ) // => "Hello, World!"
分割
"Hello, World!".split( ", " ) // => [ "Hello", "World!" ]
分割
"Hello, World!".split( ", " ) // => [ "Hello", "World!" ] "Hello, World!".split_iterator( ", " ).to_array() // => [ "Hello", "World!" ]
切り出し
基本的には文字数で切り出すことになります。
"Hello, World!"[0..4] // => "Hello" "Hello, World!".slice( 7, 12 ) // => "World"
配列
Swiff の配列型は固定長です。
別の型も要素として含めることができますが、object
型の配列になってしまうかもしれません。
let foo = [ 1, 3.14, "hoge" ] let baz : int[] = [ 1, 2, 3 ]
配列の操作
殆どは .NET の Enumerable を参考にしています。
配列の生成
Array.from( 4, index => index * 2 ) // => [ 0, 2, 4, 6 ]
Array.from_element( 3, "abc" ) // => [ "abc", "abc", "abc" ]
代入と参照
let foo = [ 1, 2, 3 ] let a = foo[1] // => 2
要素の個数
[ 1, 2, 3 ].size // => 3 [ 1, 2, 3 ].length // => 3
先頭の要素を取り出す
[ 1, 2, 3 ].first // => 1 [ 1, 2, 3 ].first( n => ( n % 2 ) == 0 ) // => 2
末尾の要素を取り出す
[ 1, 2, 3 ].last // => 3 [ 1, 2, 3 ].last( n => ( n % 2 ) == 1 ) // => 3
全ての要素が条件を満たしているかどうか
[ 2, 2, 2, 2 ].all( x => x == 2 ) // => true
いずれかの要素が条件を満たしているかどうか
[ 1, 2, 3, 4 ].any( x => x == 2 ) // => true
条件を満たす要素の個数
[ 2, 2, 2, 2 ].count( n => n == 2 ) // => 4