如何交换Swift Dictionary中的元素?含具体示例场景
Swift字典交换指定元素位置的实现方法
嘿,这个问题得先明确一个前提:从Swift 5.1开始,字典才会保留插入顺序,所以咱们才能实现「交换第一个和第三个元素位置」的需求——要是用的是更早的Swift版本,字典本身是无序的,谈元素位置就没意义啦。
下面直接上可行的实现步骤和代码:
因为字典本身不太方便直接操作位置,咱们可以先把它转成键值对数组(数组是有序的,操作起来就灵活多了),交换指定索引的元素后,再转回字典就行。
完整代码示例:
// 注意要把test声明为var,因为需要修改它 var test = ["first":1,"second":2,"third":3] // 1. 将字典转换成键值对数组,此时数组顺序和字典的插入顺序一致 var keyValuePairs = Array(test) // 2. 交换数组中索引0(第一个元素)和索引2(第三个元素)的位置 keyValuePairs.swapAt(0, 2) // 3. 把交换后的数组转回字典,Swift 5.1+会保留数组的顺序作为字典的插入顺序 test = Dictionary(uniqueKeysWithValues: keyValuePairs) print(test) // 输出结果就是 ["third": 3, "second": 2, "first": 1]
额外提醒一下:如果你的项目还在使用Swift 5.1之前的版本,那字典是没有顺序保证的,就算做了上面的操作,输出的字典顺序也可能不是你想要的,这种情况就得考虑改用数组来存储键值对啦。
内容的提问来源于stack exchange,提问作者yahya
相关产品推荐
相关产品推荐

