我想擦除输入字符串。让我们从这个开始:
func foo(s: String) {
s.replaceSubrange(0..<s.characters.count,
with: String(repeating: "0", count: s.characters.count))
}
可以预见的是,这会导致
不能在不可变值上使用变异成员:“s”是一个“让”常量
美好的:
func foo(s: inout String) {
s.replaceSubrange(0..<s.characters.count,
with: String(repeating: "0", count: s.characters.count))
}
但现在:
'inout String' 不能转换为 'String'
指着.character
——什么?!
奇怪的是,当我这样做时:
func foo(s: inout String) {
let n = s.characters.count
s.replaceSubrange(0..<n,
with: String(repeating: "0", count: n))
}
调用.characters
完全没问题,但是
无法使用“(CountableRange,with:String)”类型的参数列表调用“replaceSubrange”
使用0...n-1
也不行。
如何替换参数字符串中的字符?