[swift 进阶 advanced swift]读书笔记-第六章:字符串 C7P1 再也不固定宽度

第七章:字符串(String)

注:下面关于characters的介绍在swift 3.2之后废弃了。String可直接使用characters 的方法。html

7.1 再也不固定宽度

这一节主要是讲字符串String底层的东西 咱们先明白几个知识点:git

####知识点1:swift中String 是一个结构体 咱们主要使用String.Characters, 它是Character的集合,有着相似Array的特性。 ####知识点2:Unicode拥有可变长度的特性 :缘由是不一样语言的字符存放字节数不一样,若都统一长度,效率过低github

字符串的展现Demo 关于é 咱们能够用两种Unicode的方式表示字符é swift

image.png

strA.utf8.elementsEqual(strB.utf8)//false
复制代码
注: 只比较编码单元的最大好处是:效率高不少

具体的数据比较这里没有作。 不过书上在快不少后面打了个感叹号。那应该的确是快不少。😄app

字符蔟(cu四声。。)和标准等价 grapheme cluster and canonically equivalent

知识点3: 字符蔟: Character 中的编码点组合在一块儿能够组成单个字符蔟(这个就比较偏字符生成的底层了 大概有个印象就行, 之后有须要了能够看看相关文章)

苹果官方Characters and Grapheme Clusters 文档ui

知识点4:标准等价: 在上面的Demo中。无论是何种方式生成的é,只看两个都是显示为é, 在 Unicode的规范中把这个就叫作“标准等价

知识点5: 作国际化的同窗们。OC字符串的比较更推荐用compare方法, isEqual方法用上面的不一样生成方法比较就会获得false的结果。

demo以下。编码

image.png

文章源文件地址,你们若是有更好的想法和观点欢迎交流😄spa

相关文章
相关标签/搜索