العد والفهارس
جزء من قسم المنطق والتدفق في رحلة Swift على Coddy — الدرس 1 من 56.
لقد استخدمت str.count في الأساسيات للحصول على عدد المحارف. المضي قدمًا يعني فهم أن String في Swift هي تسلسل من المحارف، وليست مصفوفة مسطحة من البايتات.
let greeting = "Hello"
print(greeting.count) // 5
print(greeting.first!) // "H"
print(greeting.last!) // "o"
print(greeting.isEmpty) // falseلا يمكنك فهرسة سلسلة نصية باستخدام عدد صحيح. للحصول على حرف في موضع معين، اطلب من السلسلة النصية index مزاحاً عن بدايتها:
let i = greeting.index(greeting.startIndex, offsetBy: 1)
print(greeting[i]) // "e"تُعد الخصائص first و last و isEmpty بمثابة الأدوات اليومية. لا تلجأ إلى الفهارس إلا عندما تحتاج حقاً إلى موضع محدد.
التحدي
مبتدئاقرأ سطرًا واحدًا من المدخلات. اطبع ثلاثة أسطر:
- عدد الأحرف في المدخلات
- الحرف الأول والأخير مفصولين بمسافة، على سبيل المثال
H oلـHello trueعندما يكون الحرف الأول والأخير هما نفس الحرف مع تجاهل حالة الأحرف، وإلاfalse(على سبيل المثالAnna،RadaR)
افترض أن المدخلات تحتوي على حرف واحد على الأقل.
بالنسبة للمدخل RadaR، يكون المخرج هو:
5
R R
trueورقة مرجعية
سلسلة String في لغة سويفت هي تسلسل من الأحرف. الخصائص الرئيسية:
let s = "Hello"
s.count // 5
s.first! // "H"
s.last! // "o"
s.isEmpty // falseللوصول إلى حرف في موضع معين، استخدم إزاحة الفهرس (index offset):
let i = s.index(s.startIndex, offsetBy: 1)
print(s[i]) // "e"مقارنة الأحرف بغض النظر عن حالة الأحرف (كبيرة أو صغيرة):
s.first!.lowercased() == s.last!.lowercased()جرّب بنفسك
let line = readLine()!
// TODO: طباعة العدد، الأول/الأخير، والتحقق من تماثل الحروف مع تجاهل حالة الأحرف
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق والتدفق
1النصوص بعمق
العد والفهارسحالة الأحرف وإزالة الفراغاتالبحث في النصوصتقسيم ودمج النصوصاستبدال النصوص الفرعيةمراجعة - التحقق من اسم المستخدم4المجموعات
إنشاء المجموعاتالاتحاد والتقاطعالطرح والفرق المتماثلالمجموعات الجزئية والشاملةمراجعة - تصفية الـ Tag7مشروع - متتبع العادات
نظرة عامة على المشروعتحديد كمكتمل2النطاقات والخطوات
المغلقة مقابل نصف المفتوحةالخطوة (Stride)دوال النطاقاتالنطاقات في Switchملخص - شبكة التقويم5الدوال من الرتبة العليا - الجزء الأول
MapFilterReduceربط Map و Filter و Reduceمراجعة - إحصائيات الكلمات