在Swift 2中转换不同的Int大小

时间:2015-09-15 00:02:58

标签: swift

我正试图让这段代码在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,也无法解决。

2 个答案:

答案 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))
}