Instance Property インスタンスプロパティ

isEmoji

A Boolean value indicating whether the scalar has an emoji presentation, whether or not it is the default. このスカラーがemoji提示物を持つかどうか、それが初期設定であるかそうでないか、を指し示すブール値。

Declaration 宣言

var isEmoji: Bool { get }

Discussion 解説

This property is true for scalars that are rendered as emoji by default and also for scalars that have a non-default emoji rendering when followed by U+FE0F VARIATION SELECTOR-16. This includes some scalars that are not typically considered to be emoji: このプロパティがtrueであるのは、emojiとして初期状態で描出されるスカラーに対して、そしてまたU+FE0F VARIATION SELECTOR-16が後に続く場合に描出する非初期状態emojiを持つスカラーに対してです。これは、概してemojiであると考えられない幾つかのスカラーを含みます:


let scalars: [Unicode.Scalar] = ["😎", "$", "0"]
for s in scalars {
    print(s, "-->", s.properties.isEmoji)
}
// 😎 --> true
// $ --> false
// 0 --> true

The final result is true because the ASCII digits have non-default emoji presentations; some platforms render these with an alternate appearance. 最後の結果はtrueです、なぜならASCII桁それらは非初期状態emoji表現を持つので;いくつかのプラットホームはそれらは代替の外観で描出します。

Because of this behavior, testing isEmoji alone on a single scalar is insufficient to determine if a unit of text is rendered as an emoji; a correct test requires inspecting multiple scalars in a Character. In addition to checking whether the base scalar has isEmoji == true, you must also check its default presentation (see isEmojiPresentation) and determine whether it is followed by a variation selector that would modify the presentation. この挙動のために、isEmoji単独で単一のスカラー上でテストすることは、あるテキスト単位がemojiとして描出されるかを判定するには不十分です;正確なテストはあるCharacterの中の複数のスカラーを検査することを要求します。基底スカラーがisEmoji == trueであるかどうかを調べることに加えて、あなたはまたそれの省略時の表現を調べて(isEmojiPresentationを見てください)そしてその表現を修正する異字体セレクタがそれの後に続くかどうかを判定しなければなりません。

This property corresponds to the “Emoji” property in the Unicode Standard. このプロパティは、ユニコード標準における “Emoji” に相当します。