从字符串文字初始化CChar或UInt8,运行时开销为零(Swift)

时间:2014-09-12 11:20:33

标签: swift

如何在Swift中使用字符串文字初始化CCharUInt8

extension UInt8 : ExtendedGraphemeClusterLiteralConvertible {
    public static func convertFromExtendedGraphemeClusterLiteral(value: String) -> UInt8 {
        let num = value.unicodeScalars[value.unicodeScalars.startIndex]
        return UInt8(num.value)
    }
}

let a: UInt8 = "A"

println(a)

这是我的尝试,但我想它是在运行时执行的。如何在零运行时开销的情况下做到这一点?

1 个答案:

答案 0 :(得分:3)

简单地说,你不能。这就是swift用于使用文字初始化的任何其他数据类型。例如,String类型实现:

extension String : ExtendedGraphemeClusterLiteralConvertible {
    static func convertFromExtendedGraphemeClusterLiteral(value: String) -> String
}

并且可以使用字符串文字初始化String变量

所以,你正在做的是正确的方式。