swift学习第七天:字典
字典的介绍
- 字典允许按照某个键来访问元素
- 字典是由两部分集合构成的,一个是键(key)集合,一个是值(value)集合
- 键集合是不能有重复元素的,而值集合是可以重复的,键和值是成对出现的
- Swift中的字典
- Swift字典类型是Dictionary,也是一个泛型集合
import UIKit // 1.字典的定义
// 1>不可变字典(let)
// 注意:1:在swift中无论是数组还是字典都是使用[],但是如果[]中存放的是元素,编译器会认为是一个数组.如果[]中存放的是键值对,编译器会认为是一个字典. 2:如果字典中的value值的类型都是相同的,那么不用做类型转换,也就是不用加as [String : Any](字典和数组中都可以存放基本的数据类型,在swift中基本的数据类型也被看做是对象),如果在字典中的value值的类型都相同,则就不需要添加类型转换,转为as [String : Any] let dict = ["name" : "why", "age" : , "height" : 1.88] as [String : Any] let dictQ = ["hello":"","bhe":"","hahdfiasdf":""] // 2>可变字典(var):字典,数组,元组都是泛型集合,所以必须在初始化的时候,规定其里面的元素类型,如果规定value值是AnyObject,则对字典进行赋值的时候,dictM["age"] = 18 as AnyObject?,类型推到不能知道它是Int类型还是AnyObject类型,所以需要进行类型转换,as AnyObject?
// var dictM = Dictionary<String, AnyObject>()
var dictM = [String : AnyObject]() // 2.对可变字典的操作
// 2.1.添加元素
// dict["weight"] = 60 错误写法
dictM["name"] = "why" as AnyObject?
dictM["age"] = as AnyObject?
dictM["heihgt"] = 1.88 as AnyObject?
dictM["weight"] = as AnyObject? // 2.2.删除元素
dictM.removeValue(forKey: "name") // 2.3.修改元素
// 注意:如果有对应的key,则修改对应的value,如果没有对应的key,则添加对应的键值对
dictM["age"] = as AnyObject?
dictM // 2.4.获取元素
dictM["weight"] // 3.遍历字典
// 3.1.遍历所有的key
for key in dictM.keys {
print(key)
} // 3.2.遍历所有的value
for value in dictM.values {
print(value)
} // 3.3.遍历所有的key/value
for (key, value) in dictM {
print(key)
print(value)
} // 4.合并字典
// 注意:字典即使类型一直也不可以先加合并
let tempDict : [String : AnyObject] = ["phoneNum" : "+86 110" as AnyObject, "sex" : "男" as AnyObject] //let resultDict = tempDict + dictM for (key, value) in tempDict {
dictM[key] = value
} dictM
swift学习第七天:字典的更多相关文章
- Swift学习笔记七
控制流 Swift提供了和C类似的控制流表达式,包括for.while.if.switch.当然也包括break和continue这种语句来引导控制流到某个指定点的语句. 在C的for基础上,Swif ...
- swift学习第五章-字典的使用
//以下是关于字典的 //字典的格式[key:value] //字典能够存放基本类型和对象类型的 //声明一个字典 var dictionary1=["key1":"鸭鸭 ...
- swift学习笔记(七)自己主动引用计数
与Object-c一样,swift使用自己主动引用计数来跟踪并管理应用使用的内存.当实例不再被使用时,及retainCount=0时,会自己主动释放是理所占用的内存空间. 注:引用计数仅适用于类的实例 ...
- python学习第七篇——字典访问键与值
此程序的目的在于,正确而简单的访问字典的键与值 favorite_languages={ 'jen':['python','c'], 'sarah':['c'], 'edward':['ruby',' ...
- python3学习笔记七(字典)
参照http://www.runoob.com/python3/python3-dictionary.html 字典 字典是另一种可变容器模型,且可以存储任意类型对象. dict1 = {key1:v ...
- python学习(七)字典学习
#!/usr/bin/python # 字典 # 当时学java的时候, 语言基础就学了好久, 然后是各种API, 最后才是集合 # 键值对, 可变 # 1. 映射操作 D = {'food' : ' ...
- python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍
目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...
- 零基础使用Swift学习数据科学
概述 Swift正迅速成为数据科学中最强大.最有效的语言之一 Swift与Python非常相似,所以你会发现2种语言的转换非常平滑 我们将介绍Swift的基础知识,并学习如何使用该语言构建你的第一个数 ...
- C语言学习 第七次作业总结
C语言学习 第七次作业总结 数组可以分为数组和多下标数组(在传统的国内C语言书本中,将其称为二/多维数组). 数组名称 在之前的课程中,大家应该都有印象,对于int a这样的定义,会为变量 a 声明一 ...
随机推荐
- jodd-cache集锦
Jodd cache提供了一组cache的实现,其层次如下: 其中, AbstractCacheMap是一个具有计时和大小的缓存map的默认实现,它的实现类必须: 创建一个新的缓存map. 实现自己的 ...
- HDU 2988 Dark roads(kruskal模板题)
Dark roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- codeforces 1037E. Trips(倒叙)
题目传送门: 解题思路: 正着搞好像有点恶心. 反着搞. 一边删一边搞,从崩坏的地方开始,入度--. 最后dfs崩坏,更新答案. 注意要把边删掉防止重复崩坏. 代码: #include<cstd ...
- Boost解析xml——xml写入
<?xml version="1.0" encoding="utf-8"?> <Config> <Item name=" ...
- CODEVS——T1979 第K个数
http://codevs.cn/problem/1979/ 时间限制: 1 s 空间限制: 1000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Descript ...
- 【转载】使用logstash+elasticsearch+kibana快速搭建日志平台
原文链接:http://www.cnblogs.com/buzzlight/p/logstash_elasticsearch_kibana_log.html 日志的分析和监控在系统开发中占非常重要的地 ...
- curl 使用 ~/.netrc ( Windows 上是 _netrc ) 问题
curl 使用 --netrc-file <filemame> , -n, --netrc, --netrc-optional 等选项做登录认证时, 默认文件位于 ~/.netrc ( ...
- 26.SpringBoot事务注解详解
转自:https://www.cnblogs.com/kesimin/p/9546225.html @Transactional spring 事务注解 1.简单开启事务管理 @EnableTrans ...
- 2. Spring Boot Controller
转自:https://blog.csdn.net/catoop/article/details/50501676
- jedate-开始使用一款好用的时间插件
jeDate日期控件 -(原生JS版)jeDate V6.5.0 是一款原生JS开发的 不依赖任何第三方库 大众化的日期控件,包含 多语言.设定年月(YYYY-MM).日期范围限制.开始日期设定.自定 ...