Swift中的Unichar变量

时间:2015-06-15 07:08:45

标签: swift unichar

如何在Swift中定义unichar类型变量,如Objective-C中的'\0' '\n'

在斯威夫特,

func previousCharacter() -> unichar {
    return "\n"     //Error
}

编译器给了我一个错误:

  

无法将'String'类型的返回表达式转换为预期的返回类型'unichar'

但是在Objective-C中,直接执行此操作会更容易。

1 个答案:

答案 0 :(得分:2)

在Swift中,字符文字的类型为Character

let exclamationMark: Character = "!"

请参阅Strings and Characters

对于高级读者:

您还可以使用接受字符文字的功能扩展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时会截断某些字符。