Ios 在swift 3中输入参数

Ios 在swift 3中输入参数,ios,swift,swift3,Ios,Swift,Swift3,这是我的代码: func removeFromString( _ s: inout String, Character c:Character) -> Int { var s1 = s var nRemoved = 0 while let ix = s1.characters.index(of: c) { s1.removeSubrange(ix...ix) nRemoved += 1 } return nRemo

这是我的代码:

func removeFromString( _ s: inout String, Character c:Character) -> Int {
    var s1 = s
    var nRemoved = 0

    while let ix = s1.characters.index(of: c) {
        s1.removeSubrange(ix...ix)
        nRemoved += 1

    }
    return nRemoved
}

var s2 = "everest"

let resb = removeFromString(&s2, Character: Character("e"))

我的问题是,在使用
inout
参数
s
后,应该将s2更改为“vrst”。但它根本没有修改
var s2
。我做错了什么?或者我期望输出错误?一定要帮忙。谢谢。

通过将
s
移动到
s1
中,您就是在复制它,因为字符串是一个结构,所有结构都是按值传递的。因此,最后您只更改了
s1
,而不是传入的字符串
s
。只需删除它:

func removeFromString( _ s: inout String, Character c:Character) -> Int {
    var nRemoved = 0

    while let ix = s.characters.index(of: c) {
        s.removeSubrange(ix...ix)
        nRemoved += 1

    }
    return nRemoved
}

完美的谢谢!:)更简单:
s.remove(at:ix)