// ViewController.swift
// 012-字典
//
// Created by 莊壯勇 on 2018/1/4.
// Copyright © 2018年 Personal. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
demo4()
}
// 4.合併
func demo4() {
var dict1:[String: Any] = ["name": "張","age": 18,"title": "老闆"]
let dict2:[String: AnyObject] = ["name": "大瓜" as AnyObject,"height": 1.9 as AnyObject]
// 將dict2合併到dict1
// 提示: 字典不能直接相加
// 思路, 遍歷dict2 依次設置
// 如果 key 存在, 會修改
// 如果 key 不存在,會新增!
for e in dict2 {
dict1[e.key] = dict2[e.key]
}
print(dict1)
}
// 3.遍歷
func demo3() {
let dict:[String: Any] = ["name": "張","age": 18,"title": "老闆"]
// 元組 (key: String, value: Any)
for e in dict {
print("\(e.key) \(e.value)")
}
print("-------")
/**
前面的 是 KEY
後面的 是 VALUE
具體的名字可以隨便
OC 遍歷 for in 只能獲取到只能獲取到KEY
*/
for (key, value) in dict {
print("\(key) \(value)")
}
}
// 2.增刪改
func demo2() {
// 可變 var / 不可變 let
var dict:[String: Any] = ["name": "張","age": 18]
// 新增 - 如果 KEY 不存在,就是新增
dict["title"] = "大哥"
print(dict)
// 修改 - 字典中, 是通過 KEY 取值,KEY在字典中必須是唯一的
// 如果 KEY 存在,就是修改
dict["name"] = "大西瓜"
print(dict)
// 刪除 - 直接指定 KEY
// *** 科普,字典是通過 KEY 來定位值的,KEY 必須是可以 ‘hash’ 哈希 ‘MD5 一種
// hash 就是講字符串變成唯一的'整數',便於查找,提高字典遍歷的速度
dict.removeValue(forKey: "age")
print(dict)
}
// 1.定義
func demo1() {
// OC 定義字典使用{}
// Swift 中同樣使用[]
// [KEY: VALUE] -> [String: NSObject]
let dict = ["name":"張","age":18] as [String : Any]
print(dict)
// 定義字典的數組 - 提示,這種格式在開發中使用的最多
let array:[[String: Any]] = [["name":"張","age": 18 ],["name":"李" ,"age": 108 ]]
print(array)
}
}