2017-08-25 34 views
0
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 
} 

我在标题中出现错误。这是为什么发生?removeSubrange产生'()',而不是预期的上下文结果类型'字符串'

enter image description here

+0

'removeSubrange'不返回任何东西,它的变异串塔你打电话吧 – dan

回答

0

的问题,当我试图打印(extInfo.trimBefore(字符开始: “”)这()返回

当我把它改为:

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) 
    } 
} 
相关问题