我尝试在 Swift 中连接两个字符,但它显示了错误
二元运算符不能应用于两个字符操作数。
let a: Character = "A"
let l: Character = "l"
let al = a + l
Swift 的字符串支持运算符重载,为什么字符不支持呢?
您可以将字符附加到字符串
let a: Character = "A"
let l: Character = "l"
var al = ""
al.append(a)
al.append(l)
print(al) // "Al"
或连接两个字符串
let a = "A"
let l = "l"
let al = a + l // "Al"
如果您确实希望/需要能够使用
Character(s)
运算符“连接”2 +
,您可以定义此函数。
func + (left:Character, right:Character) -> String {
return "\(left)\(right)"
}
正如 Skrundz 在其评论中所说,
Character
的实例只能包含 1 个字符,因此该函数的输出将是 String
。
现在:
let a : Character = "A"
let b : Character = "B"
let ab = a + b // -> the String "AB"
简单解释:
Character
是一种单值类型,逻辑上不能有任何串联。您需要“向上转型”为字符串
let al = String(a) + String(l)
(甚至
let al = String(a + l)
也不起作用)
列出连接两个字符的大多数可能性
let character1: Character = "a"
let character2: Character = "b"
let result = String(character1) + String(character2)
let result = "\(character1)" + "\(character2)"
let result = "\(character1)\(character2)"
let result = "" + [character1, character2]
var result = ""; result += [character1, character2]
var result = ""; result.append(character1); result.append(character2)
var result = [String(character1), String(character2)].joined()