在查看ExpressibleByStringLiteral
的文档时,我遇到了ExpressibleByExtendedGraphemeClusterLiteral
。虽然我知道实现前者允许使用字符串文本初始化String
类型以外的其他类型,但我不确定后者用于什么。
事实上,经过一些搜索之后,我不确定grapheme集群是什么——有人能解释一下它是什么吗,还有,它与协议的关系,如果实现了,它能提供什么功能?
最佳答案
grapheme集群是一组符号,这些符号共同表示用户将在屏幕上的字符串中看到的单个字符。它通常由一个“基本字符”加上苹果公司所称的“组合标记”组成,例如,当没有可用的预合成的单个Unicode字符可以为您完成这项工作时,就使用它。
当在字符串中使用grapheme集群时,必须特别注意寻找子串等的任何函数都能够正确地划分集群之间的边界。
你可以在这里看到几个例子:
https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html
遵守协议ExpressibleByExtendedGraphemeClusterLiteral只意味着可以用literal grapheme集群初始化所讨论的字符。同样,你可以在上面的链接中看到这个例子。
关于swift - 什么是字素群集,ExpressibleByExtendedGraphemeClusterLiteral做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39869673/