removeSubrange 产生“()”,而不是预期的上下文结果类型“字符串”
Posted
技术标签:
【中文标题】removeSubrange 产生“()”,而不是预期的上下文结果类型“字符串”【英文标题】:removeSubrange produces '()', not the expected contextual result type 'String' 【发布时间】:2017-08-25 17:00:09 【问题描述】: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
不返回任何内容,它会改变您调用它的字符串
【参考方案1】:
当我尝试 print(extInfo.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)
【讨论】:
以上是关于removeSubrange 产生“()”,而不是预期的上下文结果类型“字符串”的主要内容,如果未能解决你的问题,请参考以下文章
如果我在 JQM 中使用 `touch` 事件而不是 `click' 事件,是不是会产生性能差异
Dropzone getAcceptedFiles() 产生 [object File] 而不是 file
Python:有没有办法让 swipl 查询产生值 true 而不是 ?