连接 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()
我试图在 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()