swift基本语法(总结提炼版)之008 swift 之字典
2016-02-24 23:08
351 查看
字典
/// 定义并实例化字典 var dict = [String: AnyObject]() dict["name"] = "zhangsan" dict["age"] = 18 print(dict) // 设置相同 key,之前的数值会被覆盖 dict["name"] = "lisi" print(dict) // 删除某一个 key dict.removeValueForKey("age") print(dict) dict["title"] = "manager" print(dict) // 遍历字典(k, v可以随便写) for (k, v) in dict { print("\(k) -- \(v)") } // 合并字典 var dict2 = ["name": "wangwu", "age": 80, "title": "boss"] for (k, v) in dict2 { dict.updateValue(v, forKey: k) } print(dict)
操练:
/*
字典定义: 键值对
OC:NSDictionary *dict = [NSDictionary dictionaryWithObject:@"lnj" forKey:@"name"];NSLog(@"%@", dict);NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];NSLog(@"%@", dict);NSDictionary *dict = @{@"name":@"lnj", @"age":@30};NSLog(@"%@", dict);*/// key一定要是可以hash的(String, Int, Float, Double, Bool), value没有要求var dict = ["name":"lnj", "age":30]print(dict)var dict1:Dictionary = ["name":"lnj", "age":30]print(dict1)var dict2:Dictionary<String,Any> = ["name":"lnj", "age":30]print(dict2)var dict3:[String:Any] = ["name":"lnj", "age":30]print(dict3)var dict4:[String:Any] = Dictionary(dictionaryLiteral: ("name", "lnj"), ("age", 30))print(dict4)//不可变数组:var dict5 = [:]//可变数组:let dict6 = [:]/*字典操作OC:1.获取NSDictionary *dict = @{@"name":@"lnj", @"age":@30};NSLog(@"%@", dict[@"name"]);2.修改NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];dict[@"name"] = @"iversion";NSLog(@"%@", dict[@"name"]);NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];[dict setObject:@"iversion" forKey:@"name"];NSLog(@"%@", dict[@"name"]);*///1.获取var dict7 = ["name":"lnj", "age":30]print(dict7["name"]!)//2.修改var dict8 = ["name":"lnj", "age":30]dict8["name"] = "iverson"print(dict8["name"]!)var dict9 = ["name":"lnj", "age":30]dict9.updateValue("iverson", forKey: "name")print(dict9["name"]!)// 3.更新// updateValue返回一个可选类型, 如果字典中不存在需要更新的key, 那么返回nil, 如果存在返回原始值var dict10 = ["name":"lnj", "age":30]if let orignal = dict10.updateValue("iverson", forKey: "name"){print(dict10["name"]!)print(orignal)}// updateValue返回一个可选类型, 如果字典中不存在需要更新的key, 那么返回nil并且会将新的键值对添加到字典中var dict11 = ["name":"lnj", "age":30]if let orignal = dict11.updateValue("iverson", forKey: "abc"){print(dict11["abc"]!)print(orignal)}print(dict11)/*4.添加OC:NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];dict[@"height"] = @175;NSLog(@"%@", dict);NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"name", @"lnj", @"age", @30, nil];[dict setObject:@175 forKey:@"height"];NSLog(@"%@", dict);*/var dict12 = ["name":"lnj", "age":30]dict12["height"] = 175;print(dict12)/*5.删除OC:NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];[dict removeObjectForKey:@"name"];NSLog(@"%@", dict);NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];[dict removeAllObjects];NSLog(@"%@", dict);*/var dict13 = ["name":"lnj", "age":30]dict13.removeValueForKey("name")print(dict13)// removeValueForKey返回一个可选类型, 如果字典中不存在需要删除的key, 那么返回nil并且不会执行任何操作, 如果存在则删除key对应的值, 并且返回被删除的值var dict14 = ["name":"lnj", "age":30]if let orignal = dict14.removeValueForKey("names"){print(dict14)print(orignal)}print(dict14)var dict15 = ["name":"lnj", "age":30]dict15.removeAll(keepCapacity: true)/*遍历字典OC:NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {NSLog(@"key = %@ value = %@", key, obj);}];NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];NSArray *keys = [dict allKeys];for (NSString *key in keys) {NSLog(@"%@", key);}NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"lnj", @"name", @30, @"age", nil];NSArray *values = [dict allValues];for (NSString *value in values) {NSLog(@"%@", value);}*/var dict16 = ["name":"lnj", "age":30]for (key , value) in dict16{print("key = \(key) value = \(value)")}var dict17 = ["name":"lnj", "age":30]for key in dict17.keys{print("key = \(key)")}var dict18 = ["name":"lnj", "age":30]for value in dict18.values{print("value = \(value)")}
相关文章推荐
- swift基本语法(总结提炼版)之007 swift之数组
- Swift - 点击输入框外部屏幕关闭虚拟键盘
- Swift开发iOS应用(2)定制单元格
- IOS Apps 开发(Swift)(3)——Build a Basic UI(1)
- swift官方文档和swift视频教程
- IOS Apps 开发(Swift)(2)——Learn the Essentials of Swift(2)
- swift之闭包循环引用问题及解决方式
- codeData的简单使用swift版
- The Swift Programming Language学习笔记(十七)——自动引用计数
- The Swift Programming Language学习笔记(十八)——可选链式调用
- swift init 初始化
- The Swift Programming Language学习笔记(十六)——析构过程
- The Swift Programming Language学习笔记(十五)——构造过程
- Swift学习笔记八:枚举
- swift 实现身份证最后一位校验,符合(ISO 7064:1983.MOD 11-2)标准,包括正则校验
- swift inheritace 继承
- swift 类方法
- Swift之 ? 和 !
- swift properties
- [Swift] 疑难杂症