#■辞書型の配列にはキーと値がある。型がそれぞれ統一されている。 基本はね...
キーがString型なら全てのキーがStringになる。
値がInt型なら全ての値がInt型になる。
var dic1 = ["name":"aoka","age":"28"]
print(dic1)
//結果: ["name":"aoka","age":"28"]
var dic2 = ["apple":100,"banana"200,"orange":300]
print(dic2)
//結果: ["apple":100,"banana"200,"orange":300]
後にAny型を使った紹介をするそれを使えば型をバラバラに入れれる。
#■空の辞書型の配列を作ろう
//これでキーはString型,値はInt型の空の配列ができる。
var dic3 = Dictionary<String:Int>()
//これをprintすれば空の辞書型配列だとわかる。
print(dic3)
//結果: [:]
#■データの代入方法
//空の辞書型配列があると仮定する。
var dic3 = Dictionary<String:Int>()
dic3["apple"] = 100
dic3["banana"] = 200
print(dic3)
//結果: ["apple":100,"banana": 200]
#■データを取り出してみよう
オプショナルバインディングしないとoptional(値)で返ってくる
optional(値)だと使えない!!!!
var dic4 = ["apple":100,"banana"200,"orange":300]
print(dic4["apple"])
//結果: optional(100) となり使えない!!!!!
//オプショナルバインディング
if let price = dic4["apple"] {
print(price)
}
//結果: 100 となり使える!!!
//デタラメなキー入れたらただのnilになる。
print(dic4["APPLE"])
//結果: nil
#■データの上書き
var dic4 = ["apple":100,"banana"200,"orange":300]
dic4["banana"] = 999
if let price = dic4["banana"] {
print(dic4["banan"])
}
//結果: 999
//データの消去もできる。
dic4["aplle"] = nil
if let price = dic4["apple"] {
print(dic4["apple"])
} else {
print("データをnilにして消したからこっちが表示される。")
}
//結果: データをnilにして消したからこっちが表示される。
#■Any型を使い色んな型を値に指定してみた!!
//値をAny型とする。
var dic5:Dictionary<String:Any> = ["name":"aoka", "age":28, "birthday":Date()]
//値がAny型なのでオプショナルバインディングして確認 これは本当にString型なのか等...
if let name = dic5["name"] as? Stirng {
print(dic5["name"])
}
//結果: aoka
if let age = dic5[age] as? Int {
print(dic5["age"])
}
//結果: 28
if let birthDay = dic5["birthday"] as? Date {
print(birthDay)
}
//結果: 2021-04-26 14:31:50 +0000
参考にさせて頂いた動画です!
https://www.youtube.com/watch?v=IJIJawKJTLc&list=PLQ5rERkGSxF9_soz3Ns-SpURWsy0WmbJQ&index=51
アプリ道場サロン