gpt4 book ai didi

swift - 如何从 Swift 中的集合中获取随机元素?

转载 作者:IT王子 更新时间:2023-10-29 05:25:19 25 4
gpt4 key购买 nike

从 Swift 1.2 开始,Apple 引入了 Set集合类型。

比如说,我有一个这样的集合:

var set = Set<Int>(arrayLiteral: 1, 2, 3, 4, 5)

现在我想从中获取一个随机元素。问题是如何? Set不提供subscript(Int)喜欢Array做。相反,它有 subscript(SetIndex<T>) .但首先,SetIndex<T>没有可访问的初始值设定项(因此,我不能只用我需要的偏移量创建索引),其次,即使我可以获得集合中第一个元素的索引( var startIndex = set.startIndex ),那也是我可以获得的唯一方法到第 N 个索引是通过连续调用 successor() .

因此,目前我只能看到 2 个选项,既丑陋又昂贵:

  • 将集合转换为数组 ( var array = [Int](set) ) 并使用它的下标(完全接受 Int );或
  • 获取集合中第一个元素的索引,遍历successor()的链方法获取到第N个索引,然后通过set的下标读取对应的元素。

我是否错过了其他方式?

最佳答案

从 Swift 4.2 开始,您可以使用 randomElement :

let random = set.randomElement()

关于swift - 如何从 Swift 中的集合中获取随机元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28489867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com