Swift 配列と辞書【Array | Dictionary】

Pocket

Swiftで変数を配列としてもたせる場合は下記のように記述することができてとてもシンプルです。

var array1= [1,2,3]
var str_array1= ["あ","い","う"]

数値や文字列を自動で判断するようですので、型を気にする必要はありません。数値と文字列を混ぜる場合 as [Any]をつけて対応することもできます。

var array1 = [1,"い","う"] as [Any]

上記のような場合、型はどうなっているのか確認したいので、下記のように記述し型を取得します

var array1 = [1,2,3]
print(type(of: array1))
var str_array1 = [1,"い","う"] as [Any]
print(type(of: str_array1))

実行すると 数値だけの型はArray<Int>で、数値と文字列が混ざっている場合Array<Any>になっていました。

Array<Any>だと何でも入るのですが文字列かどうかを判断する必要があります。

let ar1:Array<Any>  = [1, "文字列", Button("Button1",action: {})]
print(ar1.count)
print("ar1[1] = " + (ar1[1] as! String))

上の例は、配列の1番目を取得したので文字列にキャストしています。

配列の追加・削除【append】

配列に追加・削除したい場合下記のように記述できます

var array1 = [1,2,3]
array1.append(4) //追加
array1.remove(at: 0) //0番目削除

配列に4を追加して 配列の0番目を削除しています。

mapを使って配列の値を一括に処理したい場合

var array1 = [1,2,3]
let array2 = array1.map {
    $0 + 2
}

mapを使って、[1,2,3]それぞれに+2したarray2を作成しました。array2 = [3,4,5]になります。

swift array2

配列内を一つづつ取得し処理したい場合【for】

配列を繰り返し処理したい場合、for inforEachが使えます。

var array1 = [1,2,3]

let array2 = array1.map {
	$0 + 2
}

array1.append(4)
array1.remove(at: 0)

array1.forEach{ i -> Void in
	print("array1 = \(i)")
}
for i in array2{
	print("array2 = \(i)")
}

辞書 【Dictionary】 を使う

DictionaryはKey, Valueがセットになっていて Keyで指定したValueが取得できます。PHPなどの連想配列のようなイメージでしょうか

var dic1 = [1:"a", 2:"b", 3:"c"]

上記のように値をセットするとDictionary<Int,String>と自動的に判断します。

var dic1 = [1:"a", 2:"b", 3:"c"]
dic1[1] = "abc"  //値を変更
dic1[100] = "百" //新たにキーと値を追加

値を指定して代入や新たにKeyとValueを追加することもできます。

DictionaryでforEachを使う場合

var dic1 = [1:"a", 2:"b", 3:"c"]
dic1.forEach{(k,v) -> Void in
	print("key = \(k), value=\(v)")
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA