而不是预期的上下文结果类型

而不是预期的上下文结果类型

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
}

我发现标题有误。为什么会这样?
swift - removeSubrange产生&#39;()&#39;,而不是预期的上下文结果类型&#39;String&#39;-LMLPHP

最佳答案

当我尝试打印时,问题就开始了(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/

10-09 08:52