我在playground中编写这个示例是为了
import UIKit
struct test{
var id: Int
var nsm: String
}
let datas = [test(id:1, nsm: "test1"), test(id:2,nsm: "test2"),test(id: 3, nsm: "test3")]
let dict = Dictionary(grouping: datas, by: { $0.id})
print(dict[0])
如果我输出“dict[0]”,我得到“nil”,但是如果我输出“dict[1]”,我得到第一个元素。为什么?
1条答案
按热度按时间jpfvwuh41#
您得到的是预期的正确答案。
dict[0]
不是词典的“第一元素”,词典没有“第一元素”;它没有顺序。您正在通过 key 进行字典查找。dict[0]
是原始数组datas
中id
为0的所有元素的列表。没有这样的元素,因此字典中没有这样的项。dict[1]
是id
为1的datas
的所有元素的列表。有一个这样的元素,即您看到的值。