连接 swift 中的字符时出错

Error concatenating characters in swift

我试图在 Swift 中连接两个字符,但它显示错误

Binary operator can't be applied on two character operands.

let a: Character = "A"
let l: Character = "l"

let al = a + l 

Swift 的字符串支持运算符重载,为什么不支持字符?

简单解释:Character是一种单值类型,逻辑上不能有任何串联。你需要 "upcast" 到 String

let al = String(a) + String(l)

(连let al = String(a + l)都不行)

您可以将字符附加到字符串

let a: Character = "A"
let l: Character = "l"

var al = ""

al.append(a)
al.append(l)

println(al)  // "Al"

或连接两个字符串

let a = "A"
let l = "l"

let al = a + l   // "Al"

如果你真的 want/need 能够 "concatenate" 2 Character(s) 使用 + 运算符你可以定义这个函数。

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"

列出连接两个字符的大部分可能性

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()