在 swift 中连接字符时出错

问题描述 投票:0回答:4

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

二元运算符不能应用于两个字符操作数。

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

let al = a + l 

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

swift concatenation
4个回答
7
投票

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

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"

6
投票

如果您确实希望/需要能够使用

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"

2
投票

简单解释:

Character
是一种单值类型,逻辑上不能有任何串联。您需要“向上转型”为字符串

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

(甚至

let al = String(a + l)
也不起作用)


0
投票

列出连接两个字符的大多数可能性

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()
© www.soinside.com 2019 - 2024. All rights reserved.