dictionaryは"key"に対する"value"を格納するものです。
追加する場合は、"定義されていない要素" = "value"とするようです。
(appendとかは使わない??)
// 定義
var dicTest02:Dictionary<String,Int> = [:]
// 追加
dicTest02["ほげ"] = 10
dicTest02["hoge"] = 20
// 取得
print(dicTest02["ほげ"]) // Optional(10)
以下、いろいろ試したジャンクソース
//: Playground - noun: a place where people can play
import UIKit
var str = "Hello, playground"
print("使い方1 初期化と宣言しておいて取り出す")
let dicTest01 = [1:"テスト1", 2:"テスト2", 3:"テスト3"]
print(dicTest01) // [2: "テスト2", 3: "テスト3", 1: "テスト1"]
print(dicTest01[1]) // "テスト1"と表示される < keyがintになっている?
print(dicTest01.count)
for val in dicTest01{ // valueが取り出されて表示される(順番は不定みたい)
print(val) // (2, "テスト2") ...
}
print("使い方2 型指定して宣言、文字列をkeyとしてメンバを格納")
var dicTest02:Dictionary<String,Int> = [:]
dicTest02["ほげ"] = 10
dicTest02["hoge"] = 20
print(dicTest02["ほげ"]) // Optional(10)
/* ダメな使い方
dicTest02 = ["ほげ":3] // keyに対してvalueを設定してあげる事
dicTest02 = ["hoge": 4] // "ほげ"は上書きされる??
print(dicTest02) // 全部表示
print(dicTest02["ほげ"])
*/
for val2 in dicTest02{
print(val2) // ("ほげ", 10)という表示
print(val2.0) // keyが表示される
print(val2.1) // valueが表示される (value = 1なのか?)
}
print("使い方3 2と同じだけど、<>で型宣言しても良いようだ")
// 空の辞書を作って追加していく
var dicTest03:[String:Int] = [:]
dicTest03["ほげ"] = 3
dicTest03["hoge"] = 4
print(dicTest03) // 両方表示される
print(dicTest03["hoge"]) // "hoge"のvalueである"4"が表示される
print(dicTest03["ほげ"]) // valueの3が表示される
for val3 in dicTest03{
print(val3)
print(val3.0)
print(val3.1)
}
print("要素をタプルで作って辞書に格納していく append使ってダメな例")
var dicTest04:[String:Int] = [:] // 空の辞書を作る
let a = ["ほげ",1]
let b = ["hoge", 2]
// dicTest04.append(a) // こういう使い方はできないみたい
print("appendで追加していく例 ...keyに追加されないので意図した動作ではない")
var dicList05 : [(id:String, name:String)] = []
let men1 = (id:"1", name:"hoge")
let men2 = (id:"2", name:"ほげ")
dicList05.append(men1)
dicList05.append(men2)
print(dicList05.count) // 2
print(dicList05) // [("1", "hoge"), ("2", "ほげ")]
print(dicList05[0]) // ("1", "hoge")
print(dicList05[1]) // ("2", "ほげ")
/*
// print(dicList["1"])
for (id,name) in dicList05 = { // タプルで取得はできないみたい
print(name)
}
*/
0 件のコメント:
コメントを投稿