为什么string.append(character)无法编译,并出现错误“无法将类型'()'的值分配给类型'String'的错误”?

时间:2019-09-25 15:41:14

标签: swift string

我目前正在尝试编码字符串。某些字符可以完全照原样复制,而其他字符必须按百分比编码(这是针对URL)。作为此过程的一部分,我将遍历输入字符串并逐个检查每个字符。如果可以按原样使用字符,我只想按原样将字符连接到输出字符串。 string.append(character)函数产生编译器错误“无法将类型'()'的值分配为类型'String'”。我不明白为什么会这样。

我尝试使用带有文字字符的append,并且会产生相同的错误。我的代码如下:

var encoded: String = ""
for character in input {
    print("character: \(character)")
    if (character.isASCII) {
        if (Reserved.contains(character)) {
            encoded += encode(character)
        } else if (UnReserved.contains(character)) {
            encoded = encoded.append(character)
        } else {
            //TODO: Something
        }
    } else {
        encoded += encode(character)
    }
}

1 个答案:

答案 0 :(得分:1)

这是问题所在:

encoded = encoded.append(character)

您要将字符附加到encoded String变量中。 append返回Void(也称为()),并且您试图将那个void值分配给String变量。只需追加字符,无需重新分配变量:

encoded.append(character)