我正试图让这段代码在Swift 2中运行:
func +(left: Character, right: Int) -> String {
return String(UnicodeScalar(String(left).utf16[0] + right))
}
它正在使用旧版本的Swift。
首先,我改变了utf16[0]
中的utf16[0].value
,但它说的是Binary operator + cannot be applied to operands of type Int16 and Int
。
同时将right
作为Int16,也无法解决。
答案 0 :(得分:1)
以下是我如何使用utf16
。
func +(left: Character, right: Int) -> String {
let scalars = String(left).utf16
let value = scalars[scalars.startIndex].value as Int
return String(UnicodeScalar(value + right))
}
unicodeScalars
似乎更自然。
func +(left: Character, right: Int) -> String {
let scalars = String(left).unicodeScalars
let value = Int(scalars[scalars.startIndex].value)
return String(UnicodeScalar(value + right))
}
答案 1 :(得分:1)
我用它来工作:
func +(left: Character, right: Int) -> String {
return String(UnicodeScalar(Int(String(left).utf16.first!) + right))
}