【初心者向け】SwiftとKotlinのdictionary(Map)の書き方

swift_kotlind_ictionary

SwiftとKotlinでの書き方を同時にまとめます。

SwiftもKotlinも、dictionary(Map)はほぼ同じ感覚で書けるのでまとめて覚えられます。

ただし、SwiftのdictionaryはKotlinではMap(MutableMap)と呼ばれるものを使うのでご注意を。

Swiftのdictionaryも、KotlinのMap(MutableMap)も、分かりやすく解説します。

SwiftとKotlinのdictionary(Map)の書き方

dictionaryとは、同じ型の値を『鍵』と『値』で管理できる便利な処理です。

例えば、以下のようなイメージ。

バブル期の女性は以下のような『dictionary』で男たちを管理していた…はず。

私の為の男たち = [
“アッシー” : “佐藤くん”,
“メッシー” : “鈴木くん”,
“ミツグ”  : “田中くん”
]

※分かりやすく書いた例です。Swift/Kotlinそれぞれの項目を参照して下さい。

『私の為の男たち』dictionaryからは、『アッシー(鍵)』といえば『佐藤くん(値)』というように、鍵を基に値を取り出す事ができます。

怖いですね。

以下より、SwiftとKotlinのdictionaryの書き方と使い方について解説します。

✔ SwiftとKotlinのdictionaryの書き方

  1. Swiftのdictionaryの書き方
  2. Kotlinのdictionaryの書き方

Swiftのdictionaryの書き方

Swiftのdictionaryでは要素の追加や上書きを可能にする書き方と、不可能にする書き方ができます。

Swiftのdictionaryは、配列の書き方に似ています。

簡単なので、配列も一緒に覚えてしまってもOK。配列については以下の記事にまとめてます。

swift_kotlin_array_append

Swiftのイミュータブル(変更不可)なdictionary

Swiftのdictionaryで、要素の変更不可にしたい場合の書き方です。

『イミュータブル』とは『変更不可』の意味で、要素の追加が不可能である事を指します。

<!イミュータブル(変更不可)な辞書>
let dic = ["りんご" : 1, "みかん": 2]

<!error 追加不可>
dic["メロン"] = 3

<!error 更新不可>
dic["りんご"] = 4

Swiftの場合『let』で定義したdictionaryには要素が追加できない事が分かります。

Swiftのミュータブル(可変)なdictionary

Swiftのdictionaryで、こちらは要素の変更を可能にしたい場合の書き方。

『ミュータブル』とは『可変』の意味で、要素の追加が可能である事を指します。

<!ミュータブル(可変)な配列>
var dic : [String : Int]

<!初期化>
dic = ["りんご" : 1, "みかん" : 2]

<!OK 追加可能>
dic["メロン"] = 3

<!OK 更新可能>
dic["りんご"] = 4

Swiftの場合『var』でdictionaryを定義した場合、要素の追加が可能になります。

Kotlinのdictionary(Map)の書き方

Swiftのdictionaryと同様に、要素の追加や上書きを可能にする書き方と、不可能にする書き方ができます。

Kotlinの場合『Map』と呼ばれるものを使い、これがSwiftのdictionaryと同じ位置付けのもの

Swiftにも『map』関数がありますが、Swiftのmapとは別物なのでご注意を。

Swiftのdictionaryと機能は同じですが、書き方が異なります。

KotlinのMap(変更不可)の書き方

Swiftのdictionaryに相当するKotlinのMapの書き方です。

こちらは要素の変更不可にしたい場合の書き方。

『イミュータブル』とは『変更不可』の意味で、要素の追加が不可能である事を指します。

<!イミュータブル(変更不可)なMap>
val map = mapOf("りんご" to 1, "みかん" to 2)

<!error 追加不可>
map["メロン"] = 3
map += "メロン" to 3

<!error 更新不可>
map["りんご"] = 4
map += "りんご" to 4

Kotlinの『Map』は要素の追加や更新ができない事が分かります。

KotlinのMutableMap(可変)の書き方

Swiftのdictionaryでは『var』で定義すれば変更可能なdictionaryが書けましたが、Kotlinでは『MutableMap』を使います。

もう名前にミュータブルが付いちゃってるので分かりやすいですね。

『ミュータブル』とは『可変』の意味で、要素の追加が可能である事を指します。

<!ミュータブル(可変)なMap>
mutableMap = mutableMapOf("りんご" to 1, "みかん" to 2)

<!OK 追加可能>
mutableMap["メロン"] = 3
mutableMap += "メロン" to 3

<!OK 更新可能>
mutableMap["りんご"] = 4
mutableMap += "りんご" to 4

なお、SwiftのdicitonaryもKotlinのMutableMapも要素の追加や更新は、同じ型であれば定数でも変数でも可能です。

Kotlinの定数と変数の定義方法は以下の記事にまとめていますので、気になる方はどうぞ。

swift_kotlin_constant_variable

以上です。

いつもご静聴ありがとうございます!

エンジニアの皆さん、お疲れ様です。