有人可以解释这种差异吗?例如,如果调用removeAtIndex:,要从字符串中删除第一个字符,如果将该方法应用于字符串文字之外,它将按预期工作。像这样:
var user = "@pdxCorey"
user.removeAtIndex(user.startIndex)
print("user: \(user)")
// user: pdxCorey
但是,如果你在字符串文字中调用removeAtIndex:结果是相反的:
var user = "@pdxCorey"
print("user: \(user.removeAtIndex(user.startIndex))")
// user: @
这里发生了什么?
答案 0 :(得分:2)
这与你是否调用a中的函数无关
字符串文字与否。 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()
这是删除的角色" @"。