gpt4 book ai didi

swift - "String"的值没有成员 'indices' - 移动到 Swift 3.0

转载 作者:行者123 更新时间:2023-11-28 10:16:45 25 4
gpt4 key购买 nike

我正在从 Swift 2(可能是 2.3)迁移到 3.0,并且很难更正以下代码:现在,我知道 String 不再是一个集合。如何更正此特定代码?

let separator = anyWord.indexOf("-")!

anyWord.substring(with: (anyWord.indices.suffix(from: anyWord.index(anyWord.startIndex, offsetBy: separator + 1))))

最佳答案

作为对 @dfri's first solution 的可能改进,您可以使用 Stringrange(of:)upperBound方法(从 NSString 桥接)——它将在字符串中(第一次出现的)破折号之后为您提供索引。

import Foundation

let anyWord = "foo-bar"

if let separator = anyWord.range(of: "-")?.upperBound {
let bar = anyWord.substring(from: separator)
print(bar) // bar
}

或者甚至使用Optionalmap(_:) 压缩成一个疯狂的单一绑定(bind)方法:

if let bar = (anyWord.range(of: "-")?.upperBound).map(anyWord.substring(from:)) {
print(bar) // bar
}

尽管请注意,“字符串不再是集合”问题的一般解决方案是使用 string.characters 代替, 收藏.

关于swift - "String"的值没有成员 'indices' - 移动到 Swift 3.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40483621/

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