2016-10-05 34 views
0

ExpressibleByStringLiteralのドキュメントを見て、私はExpressibleByExtendedGraphemeClusterLiteralに出くわしました。前者を実装すると、文字列リテラルを使用してStringタイプ以外のものを初期化できることが分かりましたが、後者が何のために使用されているのかよくわかりません。GraphemeClusterとは何ですか?ExpressibleByExtendedGraphemeClusterLiteralの機能は何ですか?

実際に、いくつかの検索の後、私は書記簿のクラスタが何であるか、誰かがそれを説明することができますか?また、プロトコルとの関係はどうなっていますか?

+1

https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Strings/Articles/stringsClusters.htmlおよびhttps://developer.apple.com/reference/swift/expressiblebyextendedgraphemclusterliteral ? – user28434

+0

私はいなかったが、私は今、ありがとう。 – Vamos

答えて

1

書記素クラスタは、ユーザーが画面上の文字列内で見る個々の文字を表すシンボルの集合です。これは、一般的に「基本文字」とAppleが「結合マーク」と呼んでいるものを含み、たとえば、あなたのために仕事をする可能性のあるプリコンパイルされた単一のUnicode文字がないときに使用されます。

文字列で書記素クラスタを使用する場合、部分文字列などを検索する関数がクラスタ間の境界を適切に区切ることができるように特別な注意が必要です。

あなたはここにいくつかの例を見ることができます:プロトコルExpressibleByExtendedGraphemeClusterLiteralと

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

コンプライアンスは、単に問題の文字はリテラル書記素クラスタで初期化することができることを意味します。繰り返しますが、上のリンクの例を参照してください。