Swift字典按整数下标访问报错?符合Hashable仍失效原因咨询
Swift字典无法使用整数下标访问的原因及解决方法
- 你混淆了Apple文档中“字典的Index”概念:文档里的Index并非普通整数,而是字典自身的
Indices类型索引,用于遍历字典内部元素,和数组的整数下标逻辑完全不同。 - 字典本质是无序键值对集合(即使Swift后来支持有序字典,下标仍不接受整数参数),不存在“第N个元素”的定义,直接传入整数
0不符合字典下标的参数要求,因此报错。 - 如果需要按位置获取字典元素,可先将字典的键、值或键值对转换为数组,再用整数下标访问,示例代码:
func test() { let dictionary = [CustomKey: [CustomValue]]() // 方式1:通过键数组获取对应值 if let firstKey = dictionary.keys.first { let indexedValue = dictionary[firstKey] } // 方式2:转成键值对数组后访问 let keyValueArray = Array(dictionary) if let firstPair = keyValueArray.first { let targetKey = firstPair.key let targetValue = firstPair.value } }
内容的提问来源于stack exchange,提问作者Bram
相关产品推荐
相关产品推荐

