[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

相關文章
相關標籤/搜索