swift - Swift 中的 Unichar 变量

标签 swift unichar

如何在 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 = "!"

参见 Strings and Characters

对于高级读者:

您还可以扩展 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/

相关文章:

objective-c - 如何将具有特殊字符的字符串拆分为 NSMutableArray

ios - 毒蛇架构 : submodules in a module

ios - 从 firebase 获取列表数据,或如何构建数据

json - 如何过滤 UITableView 中显示的信息类型 | swift JSON

ios - Swift 以编程方式更改字体

ios - 特征集合中每个特征的不同图标

ios - 将二元运算符与 unichar 和 String 结合使用

iphone - 转换或打印 CGPDFStringRef 字符串