我目前正在尝试编码字符串。某些字符可以完全照原样复制,而其他字符必须按百分比编码(这是针对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)
}
}
答案 0 :(得分:1)
这是问题所在:
encoded = encoded.append(character)
您要将字符附加到encoded
String变量中。 append
返回Void(也称为()
),并且您试图将那个void值分配给String变量。只需追加字符,无需重新分配变量:
encoded.append(character)