文档章节

Swift3字典编辑

博为峰教研组
 博为峰教研组
发布于 2017/05/03 19:03
字数 705
阅读 1
收藏 0

    

我们可以对字典中的元素进行添加、删除和替换等操作。

 1.字典的添加

字典元素的添加比较简单,使用下标语法向字典中添加新的元素。以一个合适类型的新键作为下标索引,并且赋给它一个合适类型的值,就可以对字典增加一个新的键-值对元素。

  1 |  var addressDict = ["上海" : "黄浦区","广东" : "深圳","江苏" : "南京"]

  2 |  addressDict["四川"] = "成都"

  3 |  print(addressDict)

运行结果如下:

 ["上海": "黄浦区", "四川": "成都", "江苏": "南京", "广东": "深圳"]

2.字典的替换

字典元素替换也有两种方法,一种是直接给一个存在的键赋值,这样新值就会替换旧值;一种方法是通过updateValue(forKey:)方法替换,方法的返回值是要替换的值。使用下标语法来改动某个键对应的值:

 

  1 |  var addressDict = ["上海" : "黄浦区","广东" : "深圳","江苏" : "南京"]

  2 |  addressDict["上海"] = "浦东新区"

  3 |  print(addressDict)

输出结果

["江苏": "南京", "上海": "浦东新区", "广东": "深圳"]

   为特定的键设值或更新值时,使用updateValue(forKey:)方法来替代下标。该方法在键不存在的时候就设置一个新值,在键存在的时候就更新该值。

  1 |  var addressDict = ["上海" : "黄浦区","广东" : "深圳","江苏" : "南京"]

  2 |  addressDict.updateValue("浦东新区", forKey: "上海")

  3 |  print(addressDict)

  4 |  addressDict.updateValue("成都", forKey: "四川")

  5 |  print(addressDict)

   运行结果如下:

["江苏": "南京", "上海": "浦东新区", "广东": "深圳"]

["上海": "浦东新区", "四川": "成都", "江苏": "南京", "广东": "深圳"]

    上述代码,第2行代码addressDict.updateValue("浦东新区", forKey: "上海")表示将键:“上海”对应的值“黄浦区”替换为“浦东新区”。由于addressDict字典里没有“四川”这个键,所以第4行代码addressDict.updateValue("成都", forKey: "四川")表示在字典里添加“四川”, “成都”,这样一组键值对。

3.字典的删除

字典元素删除指定键值对有两种常用的方法。一种是给一个键赋值为nil,就可以删除元素;另一种方法是通过字典的removeValue(forKey:)方法删除元素,方法返回值是要删除的值。removeAll()表示删除字典中所有元素。

  1 |  var addressDict = ["上海" : "黄浦区","广东" : "深圳","江苏" : "南京"]

  2 |  addressDict["上海"] = nil

  3 |  print(addressDict)

  4 |  addressDict.removeValue(forKey: "广东")

  5 |  print(addressDict)

  6 |  addressDict.removeAll()

  7 |  print(addressDict)

输出结果

["江苏": "南京", "广东": "深圳"]

["江苏": "南京"]

[:]

上述代码,第2行在addressDict这个字典中,把“上海”这个键赋值为nil。删除上海-黄浦区这对键值对,第4行代码addressDict.removeValue(forKey: "广东")删除广东-深圳这对键值对。第6行使用removeAll()方法,删除字典中所有元素。

 

© 著作权归作者所有

博为峰教研组
粉丝 50
博文 1224
码字总数 479077
作品 0
黄浦
程序员
私信 提问
Xcode9和Swift4新特性

XCode9新特性 1. 支持远程调试 2. Xcode绑定Github账号 3. 支持Swift类重命名 4. Swift低版本兼容 5. Main Thread Checker 6. 模拟器支持多开 7. 标示功能 8. 协议自动补全 9. 代码段自动抽出...

LvesLi
2017/10/17
0
0
AppCode 2016.3 EAP 发布,改进 Swift 解析性能

AppCode 2016.3 EAP 发布更新了,版本代号为 build 163.7743.19,该版本改进了 Swift 解析性能,Swift3 在调试器以及其他更多地方被支持。 其他更新: Swift3 的支持 与 Swift3 集合渲染相关...

局长
2016/11/11
1K
4
Swift3 concurrency

转自我的github: https://github.com/uniquejava/iOSConcurrencyDemo swift3 concurrency This repo is the steps breaking down from this [excellent tutorial][1] and an update for swif......

cyper
2016/10/27
22
0
Facebook 针对 iOS 推出 Swift 开发者工具包

Swift3中文网消息,Facebook为iOS开发者推出了Swift开发者工具包(SDK),开发者可以通过Github链接下载https://github.com/facebook/facebook-sdk-swift。目前这一SDK基于Swift2,不过Faceboo...

研习君
2016/07/15
1K
2
Focus - 有些事情需要这份执着

Focus一次探索watchOS的实践。再次慨叹下Apple的审核速度,just one day... Focus - 有些事情需要这份执着 人这一辈子总有一些一定要去做必须要去体验的东西。 对于这些事物的追求需要这份执...

AliThink
2016/11/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

新手转行学java难吗?新手学java需要注意的6个方面!

新手转行在成都学java到底难不难,对于这个问题,我们专门做过一个调查,超过1000名已经在职的java从业者,其中有80%的程序员觉得学java不难,20%的程序员觉得前期有点难,其中对于50%自学的...

Java领航员
47分钟前
3
0
动态规划-硬币问题分析

什么是动态规划 上次对动态规划已经有了个大概的分析。引用维基百科的话就是: dynamic programming is a method for solving a complex problem by breaking it down into a collection of...

AI考拉
55分钟前
1
0
谈谈lucene的DocValues特性之SortedSetDocValuesField

SortedSetDocValuesField与SortedDocValuesField类似但它是一键多值的(注意:lucene的数据模型是支持一键多值的即key-values模型),lucene在实现时会判断是一键一值还是多值,如果单值就调...

FAT_mt
今天
1
0
生产者消费者模式

//尚学堂视频里,不是完整的 public class Movie { /** * 共同的资源 */ private String pic; //flay为true生产,false消费 private boolean flag=true; public synchronized void play(Str......

南桥北木
今天
1
0
使用阿里云镜像安装kubernetes

参考阿里云镜像 https://opsx.alibaba.com/mirror?lang=zh-CN 系统: CentOS / RHEL / Fedora cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https......

北漂的我
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部