gpt4 book ai didi

ios - 在 Swift 中将范围存储在数组中

转载 作者:行者123 更新时间:2023-11-28 05:33:54 25 4
gpt4 key购买 nike

我需要创建一个数组,其对象的类型为 Range。但是创建如下所示的数组会产生错误“Reference to generic type 'Range' requires arguments in <...>”

var ranges:Array<Range> = []

基本上,我想要完成的是创建一个范围列表,该列表将用作生成随机类型的阶跃函数。我在没有使用数组的情况下完成了此操作,但是随着我添加更多类型,我觉得需要将它们循环到数组中。我的问题是范围无法以某种方式存储在 Swift 中的数组中。这是我的旧代码。

        let twisterUpperRange = UInt32(roundf(twisterRate * 1_000))
let bombUpperRange = UInt32(roundf(bombRate * 1_000)) + twisterUpperRange
let blindUpperRange = UInt32(roundf(blindRate * 1_000)) + bombUpperRange

let randomNumber = arc4random_uniform(1_000) + 1

var powerupType:PowerupType
switch randomNumber {
case 0...twisterUpperRange:
powerupType = PowerupType.TwisterType
case twisterUpperRange...bombUpperRange:
powerupType = PowerupType.BombType
case bombUpperRange...blindUpperRange:
powerupType = PowerupType.BlindType
default:
powerupType = PowerupType.NormalType
}

return powerupType

最佳答案

这个错误意味着 Swift Range is generic a generic type on the type of the interval ends:

var ranges : Array<Range<UInt32>> = []
let blindRate = 0.3
let twisterRate = 0.5
let bombRate = 0.2
let twisterUpperRange = UInt32(twisterRate * 1_000)
let bombUpperRange = UInt32(bombRate * 1_000) + twisterUpperRange
let blindUpperRange = UInt32(blindRate * 1_000) + bombUpperRange
ranges.append(0...twisterUpperRange)
ranges.append(twisterUpperRange...bombUpperRange)
ranges.append(bombUpperRange...blindUpperRange)
print(ranges)

Demo.

关于ios - 在 Swift 中将范围存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029673/

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