gpt4 book ai didi

swift - 如何增加 String.CharacterView.Index 类型的变量?

转载 作者:搜寻专家 更新时间:2023-10-31 08:32:01 25 4
gpt4 key购买 nike

我正在尝试这个(在 Playground):

class SomeClass {

private let input: String.CharacterView
private var position: String.CharacterView.Index

...

private func advance() {

position += 1

} // advance

} // SomeClass

...但我收到以下错误消息:

error: binary operator '+=' cannot be applied to operands of type 'String.CharacterView.Index' and 'Int'

我尝试增加这个索引的原因是因为我想做类似的事情:

input[position]

...并在输入处访问特定字符。

此时我已经知道我不能在位置上使用这个二元运算符。什么是可行的解决方案?

我正在使用 Swift 3 和 Xcode 版本 8.0 beta 6 (8S201h)

最佳答案

在 Swift 3 中,“Collections move their index”,比较 A New Model for Collections and Indices关于 Swift 演进。

你的情况

private func advance() {
input.formIndex(&position, offsetBy: 1)
}

会将索引位置前进一位。在这里你必须确保索引不等于 endIndex,或者使用

private func advance() {
input.formIndex(&position, offsetBy: 1, limitedBy: input.endIndex)
}

关于swift - 如何增加 String.CharacterView.Index 类型的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39443474/

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