什么是GraphemeCluster以及ExpressibleByExtendedGraphemeClusterLiteral的作用是什么?

时间:2016-10-05 09:03:31

标签: swift swift3

在查看ExpressibleByStringLiteral的文档时,我遇到了ExpressibleByExtendedGraphemeClusterLiteral。虽然我理解实现前者允许使用字符串文字来初始化除String类型之外的其他内容,但我不确定后者用于什么。

事实上,经过一些搜索后,我不确定字形集群是什么 - 有人可以解释它是什么,以及它与协议的关系,如果实现它会提供什么功能?

1 个答案:

答案 0 :(得分:1)

字形集群是一组符号,它们共同代表用户将在屏幕上的字符串中看到的单个字符。它通常包含一个“基本字符”以及Apple称之为“组合标记”的内容,例如,当没有可用的预组合单个Unicode字符可以为您完成工作时使用它。

当在字符串中使用字形集群时,您必须特别注意寻找子字符串等的任何函数都能够正确地划分集群之间的边界。

您可以在此处看到几个示例:

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html

符合协议ExpressibleByExtendedGraphemeClusterLiteral只是意味着可以使用文字字形集群初始化相关字符。同样,您可以在上面的链接中看到此示例。