👩👩👧👦 जैसे इमोजी Swift स्ट्रिंग्स में अजीब व्यवहार क्यों करते हैं?
सभी को नमस्ते! मैं एक iOS ऐप लिख रहा हूँ जो इमोजी वाले टेक्स्ट को प्रोसेस करता है। और मुझे Swift में मल्टी-कम्पोनेंट इमोजी, विशेष रूप से परिवारों और झंडों के साथ काम करते समय अजीब व्यवहार का सामना करना पड़ा।
उदाहरण के लिए, मेरे पास एक स्ट्रिंग है `let family = "👩👩👧👦"`। मुझे उम्मीद है कि `family.count` 1 लौटाएगा (क्योंकि यह एक इमोजी है!), लेकिन इसके बजाय मुझे 7 मिलता है। और अगर `family.first` के माध्यम से पहला कैरेक्टर प्राप्त करने की कोशिश करूँ, तो पूरा इमोजी नहीं, बल्कि एक अजीब सा कैरेक्टर लौटता है।
यहाँ वह कोड है जिसने मुझे भ्रमित किया:
```swift
let family = "👩👩👧👦"
print(family.count) // 7
print(family.utf8.count) // 25
print(family.utf16.count) // 11
print(family.unicodeScalars.count) // 7
print(family.first) // Optional("👩")
```
मुझे उम्मीद थी कि count 1 होगा और first पूरा इमोजी लौटाएगा। Swift इन कैरेक्टर्स को अलग-अलग क्यों गिनता है? Swift में ऐसे इमोजी के साथ सही तरीके से कैसे काम करें? विशेष रूप से मुझे इस बात में दिलचस्पी है कि ऐसे कम्पोजिट इमोजी वाली स्ट्रिंग्स को सुरक्षित रूप से कैसे ट्रिम किया जाए ताकि उन्हें टुकड़ों में न तोड़ा जाए।