如何unichar
在 Swift 中定义类型变量喜欢'\0'
'\n'
在 Objective-C 中?
在斯威夫特,
func previousCharacter() -> unichar {
return "\n" //Error
}
编译器给了我一个错误:
无法将“String”类型的返回表达式转换为预期的返回类型“unichar”
但是在 Objective-C 中,直接这样做会更容易。
在 Swift 中,字符文字的类型是Character
.
let exclamationMark: Character = "!"
请参阅字符串和字符
对于高级读者:
您还可以扩展unichar
接受字符文字的能力:
extension unichar : UnicodeScalarLiteralConvertible {
public typealias UnicodeScalarLiteralType = UnicodeScalar
public init(unicodeScalarLiteral scalar: UnicodeScalar) {
self.init(scalar.value)
}
}
let newLine: unichar = "\n"
let whitespaces = NSCharacterSet.whitespaceAndNewlineCharacterSet()
print("C is whitespace \(whitespaces.characterIsMember(newLine))")
但是,请注意 Swift 文字使用 4 个字节,而unichar
仅使用 2 个字节,因此某些字符在转换为unichar
.