美文网首页
[swift 进阶]读书笔记-第七章:字符串 C7P1 不再固

[swift 进阶]读书笔记-第七章:字符串 C7P1 不再固

作者: liaoworkinn | 来源:发表于2019-01-27 17:28 被阅读3次

    第七章:字符串(String)

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

    7.1 不再固定宽度

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

    知识点1:swift中String 是一个结构体 我们主要使用String.Characters, 它是Character的集合,有着类似Array的特性。

    知识点2:Unicode拥有可变长度的特性 :原因是不同语言的字符存放字节数不同,若都统一长度,效率太低

    字符串的展示Demo
    关于é
    我们可以用两种Unicode的方式表示字符é

    image.png
    strA.utf8.elementsEqual(strB.utf8)//false
    
    注: 只比较编码单元的最大好处是:效率高很多

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

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

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

    苹果官方Characters and Grapheme Clusters 文档

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

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

    demo如下。

    image.png

    文章源文件地址,大家如果有更好的想法和观点欢迎交流

    相关文章

      网友评论

          本文标题:[swift 进阶]读书笔记-第七章:字符串 C7P1 不再固

          本文链接:https://www.haomeiwen.com/subject/xhcnjqtx.html