![](/img/trans.png)
[英]Swift 1.2 NSTextStorage removeAttribute with Range<String.Index>
[英]How to increase String.Index in swift3?
在swift2.3 ++中,运算符用于string.index的增加
例如。 我++
我改为swift 3代码发生“一元运算符'++'不能应用于'@lvalue String.Index'类型的操作数(又名'@lvalue String.CharacterView.Index')”在swift 3中
我重写了例如。 i + = 1
但是这段代码无法解决。 请帮我。
String.Index
是String.CharacterView.Index的String.CharacterView.Index
。 该指数本身不能增加。 相反,您可以在用于提取索引的CharacterView
上使用index(after:)
实例方法。
例如:
let str = "foobar"
let chars = str.characters
if let bIndex = chars.index(of: "b") {
let nextIndex = chars.index(after: bIndex)
print(str[bIndex...nextIndex]) // ba
}
或者,假设您有一个索引(例如str.startIndex
),您可以使用也可直接用于String
实例的index(_:, offsetBy:)
实例方法:
let str = "foobar"
let startIndex = str.startIndex
let nextIndex = str.index(startIndex, offsetBy: 1)
print(str[startIndex...nextIndex]) // fo
String.Index
没有为其定义的++
, +=
或任何类型的运算符(除了比较,例如<
, >
, ==
)。 它还有其他定义用于移动索引的方法。 要增加索引1的位置,代码将如下所示: string.index(i, offsetBy: 1)
let string = "Some string"
var i = string.startIndex
i = string.index(i, offsetBy: 1)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.