如何在 Swift 中定义一个 unichar
类型的变量,就像在 Objective-C 中定义 '\0'
'\n'
一样?
在 Swift 中,
func previousCharacter() -> unichar {
return "\n" //Error
}
编译器给我一个错误:
Cannot convert return expression of type 'String' to expected return type 'unichar'
但在 Objective-C 中,直接这样做会更容易。
最佳答案
在 Swift 中,字符字面量是 Character
类型。
let exclamationMark: Character = "!"
对于高级读者:
您还可以扩展 unichar
以接受字 rune 字:
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
时,某些字符将被截断。
关于swift - Swift 中的 Unichar 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30839202/