gpt4 book ai didi

random - 如何选择一个随机枚举值

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

我正在尝试随机选择一个枚举值:

enum GeometryClassification {

case Circle
case Square
case Triangle
case GeometryClassificationMax

}

和随机选择:

let shapeGeometry = ( arc4random() % GeometryClassification.GeometryClassificationMax ) as GeometryClassification

但它失败了。

我收到如下错误:

'GeometryClassification' is not convertible to 'UInt32'

我该如何解决?

最佳答案

在 Swift 中实际上有一个名为 CaseIterable 的枚举协议(protocol),如果你将它添加到你的枚举中,你可以将所有案例作为一个集合引用 .allCases这样:

enum GeometryClassification: CaseIterable {

case Circle
case Square
case Triangle

}

然后你可以 .allCases 然后 .randomElement() 得到一个随机的

let randomGeometry = GeometryClassification.allCases.randomElement()!

强制展开是必需的,因为枚举有可能没有大小写,因此 randomElement() 将返回 nil

关于random - 如何选择一个随机枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26261011/

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