Vapor 2.0 - 位(Bits)

前往 Vapor 2.0 - 文档目录

位(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!")
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 编码问题一直困扰着开发人员,尤其在 Java 中更加明显,因为 Java 是跨平台语言,不同平台之间编码之间的切换...
    x360阅读 7,202评论 1 20
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,955评论 18 399
  • 柠檬果汁阅读 2,720评论 0 0
  • 什么是单向数据流? 数据从父组件传递给子组件,只能单向绑定。在子组件内部不应该修改父组件传递过来的数据。 子组件不...
    MC丶逗逼嘿阅读 2,839评论 0 1
  • 张丹 那天,在报社做编辑的闺蜜带她参加一个圈子里的聚会,于是见到了他,那个传说中辞了公职靠码字吃饭的男人。闺蜜显然...
    z橄榄树阅读 1,878评论 3 1