كيفية الحصول على طول السلسلة النصية في Swift؟ (count لا يعمل كما في اللغات الأخرى)
مرحباً بالجميع! لقد بدأت للتو في تعلم Swift بعد Python وواجهت موقفاً غير مفهوم. في Python كنت معتاداً على كتابة `len("hello")` والحصول على 5. في Swift جربت القيام بذلك:
```swift
let text = "Привет, мир!"
print(text.length)
```
لكن Xcode أظهر خطأ: "Value of type 'String' has no member 'length'". ثم تذكرت أن بعض اللغات تستخدم الخاصية `length`، لكن هذا لا يعمل في Swift.
بعد ذلك بحثت ووجدت أنه يجب استخدام الخاصية `count`:
```swift
print(text.count)
```
لكن هنا لاحظت سلوكاً غريباً. إذا كانت السلسلة تحتوي على رموز تعبيرية أو أحرف مع تشكيل (مثل "café" أو "😊")، فإن `count` يظهر ما لا أتوقعه. على سبيل المثال:
```swift
let emoji = "👨👩👧👦"
print(emoji.count) // يطبع 1
```
بينما كنت أتوقع أن يكون 4 (أب، أم، بنت، ولد). أو مع العلم:
```swift
let flag = "🇷🇺"
print(flag.count) // أيضاً 1
```
لماذا يحدث هذا؟ كيف يمكن الحصول على عدد الأحرف في السلسلة بشكل صحيح مع مراعاة جميع الرموز؟