我将从Swift 2(可能是2.3)改为3.0,很难纠正以下代码:
现在,我知道那串已经不是收藏品了。如何更正此特定代码?
let separator = anyWord.indexOf("-")!
anyWord.substring(with: (anyWord.indices.suffix(from: anyWord.index(anyWord.startIndex, offsetBy: separator + 1))))
最佳答案
作为对@dfri's first solution的一种可能改进,您可以使用upperBound
的String
方法(从range(of:)
桥接而来),该方法将在字符串中破折号(第一次出现)之后为您提供索引。
import Foundation
let anyWord = "foo-bar"
if let separator = anyWord.range(of: "-")?.upperBound {
let bar = anyWord.substring(from: separator)
print(bar) // bar
}
或者使用
NSString
'sOptional
方法压缩成一个疯狂的单一绑定:if let bar = (anyWord.range(of: "-")?.upperBound).map(anyWord.substring(from:)) {
print(bar) // bar
}
尽管注意到“字符串不再是集合”问题的一般解决方案是使用
map(_:)
,这是一个string.characters
。关于swift - “String”的值没有成员“indices”-迁移到Swift 3.0,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40483621/