有人可以解释这个差异吗?例如,如果调用removeAtIndex:从字符串中删除第一个字符,则在字符串文字之外应用该方法时,它将按预期工作。像这样:
var user = "@pdxCorey"
user.removeAtIndex(user.startIndex)
print("user: \(user)")
// user: pdxCorey
但是,如果在字符串文字内调用removeAtIndex:,则结果是相反的:
var user = "@pdxCorey"
print("user: \(user.removeAtIndex(user.startIndex))")
// user: @
这里发生了什么?
这与是否在字符串文字内部调用函数无关。该String
方法
public mutating func removeAtIndex(i: Index) -> Character
从字符串中删除给定索引处的字符,并将该字符作为函数结果返回。
var user = "@pdxCorey"
let firstChar = user.removeAtIndex(user.startIndex)
print(user) // pdxCorey
print(firstChar) // @
在第一种情况下,您将user
在删除第一个字符后打印出值“ pdxCorey”。
在第二种情况下,您将打印其返回值removeAtIndex()
是已删除的字符“ @”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句