static func trimBefore(string: inout String, char: Character) -> String {
var newString = ""
if let charRange = string.range(of: String(char)) {
newString = string.removeSubrange(string.startIndex..<charRange.upperBound)
}
return newString
}
static func trimAfter(string: inout String, char: Character) -> String {
var newString = ""
if let charRange = string.range(of: String(char)) {
newString = string.removeSubrange(charRange.lowerBound..<string.endIndex)
}
return newString
}
我发现标题有误。为什么会这样?
最佳答案
当我尝试打印时,问题就开始了(exterfo.trimBefore(char:“.”)。这个返回了()。
当我把它改成:
extInfo.trimAfter(char: ".")
print(extInfo)
一切如期而至。
mutating func trimBefore(char: Character) {
if let charRange = self.range(of: String(char)) {
self.removeSubrange(self.startIndex..<charRange.upperBound)
}
}
mutating func trimAfter(char: Character) {
if let charRange = self.range(of: String(char)) {
self.removeSubrange(charRange.lowerBound..<self.endIndex)
}
}
关于swift - removeSubrange产生'()',而不是预期的上下文结果类型'String',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45886280/