如何在Swift中使用字符串文字初始化CChar
或UInt8
?
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)
这是我的尝试,但我想它是在运行时执行的。如何在零运行时开销的情况下做到这一点?
答案 0 :(得分:3)
简单地说,你不能。这就是swift用于使用文字初始化的任何其他数据类型。例如,String
类型实现:
extension String : ExtendedGraphemeClusterLiteralConvertible {
static func convertFromExtendedGraphemeClusterLiteral(value: String) -> String
}
并且可以使用字符串文字初始化String
变量
所以,你正在做的是正确的方式。