gpt4 book ai didi

ios - 分配一个枚举器,它与变量相反

转载 作者:行者123 更新时间:2023-11-28 07:15:39 27 4
gpt4 key购买 nike

我被这个问题困住了...我想在一个条件下在常规 for 循环中枚举,在另一个条件下则相反。像这样:

var enumerator = 0..<length
if(stringPosition == .End) {
enumerator = reverse(enumerator) //[C.Generator.Element] is not convertible to 'Range<Int>'
}
for index in enumerator {
//do stuff
}

我遇到了一个不可转换的错误,不知道如何处理。我尝试了不同的类型转换魔术,但那是行不通的。

我应该如何整理那里的转换?

最佳答案

只需转换为 Array 即可。

var enumerator = Array(0..<length) // <-- here
if(stringPosition == .End) {
enumerator = reverse(enumerator)
// then, enumerator.reverse() is better, I think
}
for index in enumerator {
//do stuff
}

我认为,更(内存)有效的方法是:

let range = lazy(0..<length)
let enumerator = stringPosition == .End ? SequenceOf(range.reverse()) : SequenceOf(range)
for index in enumerator {
//do stuff
}
  • SequenceOf 是任何 SequenceType 的包装器。您可以使用它来将不同的序列类型存储到一个变量。
  • 对于 lazy(),参见 this answerthis .

关于ios - 分配一个枚举器,它与变量相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26375847/

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