//: Playground - noun: a place where people can play
import UIKit
//字典也叫map 映射
//声明个空的字典
var Dict0 = Dictionary<Character, Any>()
Dict0.isEmpty //true
//可以直接给字典添加一个key和一个value
Dict0["笑"] = "smile"
//??运算符(类似三目运算符) 意思是当用这个键取到的值是nil的时候 可以付给其一个自己定义的值 即下面的"nothing" 只能用于optional形式的数据
print(Dict0["笑"] ?? "nothing")
//其中key是hashable的即哈希函数保存 所以不可通过value逆推key
let Dict = ["苹果":"apple","桃子":"peach","菠萝":"pineapple"]
//以下两种声明方法
let emptyDict1: [String : String] = [:]
let emptyDict2: Dictionary< String , String> = [:]
//打印可以看出 取出来的值是optional可选型 因为取出来的value可能是空 而且可能key值也不存在呢
for key in Dict.keys{
//系统不知道这个取出来的optional类型的值是空还是什么 所以会报debug警告防止其值为nil 可见swift是十分anquan
// print("\(key) :