位(bits)包默认包含在Vapor中,为处理字节提供了方便的API。
类型(Typealias)
位包为字节提供两种类型别名。
typealias Byte = UInt8
typealias Bytes = [Byte]
BytesConvertible
当我们正在工作时,我们经常要将对象转换成字节数组。BytesConvertible有助于定义具有这些功能的对象。这在Vapor中的大多数对象上已被实现,该对象可以/应该被转换成字节数组。
let hello = String(bytes: [72, 101, 108, 108, 111])
let bytes = hello.makeBytes()
字符串(String)
使用UTF-8编码从字节转换为字符串很容易。
let bytes = "hello".makeBytes()
let string = bytes.makeString()
print(string) // "hello"
字节(Byte)
大写和小写拉丁字母和一些附加的控制字符是静态类型的Byte
。
let bytes: Bytes = [.h, .e, .l, .l, .o]
print(bytes.makeString()) // "hello"
这使得字节操作和比较变得容易,对构建像解析器和序列化器这样的东西很有用。
let byte: Byte = 65
if byte == .A {
print("found A!")
}
网友评论