التكرار عبر النصوص - الجزء الثاني
جزء من قسم الأساسيات في رحلة Swift على Coddy — الدرس 72 من 86.
تماماً كما استخدمنا enumerated() مع المصفوفات للحصول على كل من الفهرس والعنصر، يمكننا فعل الشيء نفسه مع السلاسل النصية. هذا مفيد عندما تحتاج إلى معرفة موضع كل حرف أثناء التكرار.
let word = "Swift"
for (index, char) in word.enumerated() {
print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: tتعتبر هذه التقنية مفيدة عند بناء سلاسل نصية جديدة بناءً على مواضع الأحرف. على سبيل المثال، قد ترغب في الاحتفاظ بالأحرف الموجودة في الفهارس الزوجية فقط:
let text = "abcdef"
var result = ""
for (index, char) in text.enumerated() {
if index % 2 == 0 {
result += String(char)
}
}
print(result) // aceلاحظ أننا نقوم بتحويل char إلى String باستخدام String(char) قبل إلحاقه. هذا ضروري لأن result هو String، ولا يمكنك إلحاق Character به مباشرة باستخدام عامل التشغيل +=.
التحدي
سهلاكتب دالة extractOddIndexChars تأخذ text وتعيد سلسلة نصية جديدة تحتوي فقط على الأحرف الموجودة في الفهارس الفردية.
استخدم enumerated() للتكرار عبر السلسلة النصية وبناء نتيجة تحتوي على الأحرف التي يكون فهرسها فردياً (1، 3، 5، إلخ).
المعاملات:
text(String): السلسلة النصية المدخلة لمعالجتها
القيمة المرجعة: سلسلة نصية تحتوي فقط على الأحرف الموجودة في الفهارس الفردية (String)
مثال: إذا كانت text هي "abcdefg"، يجب أن تعيد الدالة "bdf" (الأحرف في الفهارس 1، 3، و 5).
ورقة مرجعية
استخدم enumerated() مع السلاسل النصية للحصول على كل من الفهرس والحرف أثناء التكرار:
let word = "Swift"
for (index, char) in word.enumerated() {
print("\(index): \(char)")
}
// 0: S
// 1: w
// 2: i
// 3: f
// 4: tعند بناء سلاسل نصية بناءً على مواقع الأحرف، قم بتحويل Character إلى String قبل الإلحاق:
let text = "abcdef"
var result = ""
for (index, char) in text.enumerated() {
if index % 2 == 0 {
result += String(char)
}
}
print(result) // aceاستخدم String(char) لتحويل Character إلى String عند الإلحاق باستخدام +=.
جرّب بنفسك
func extractOddIndexChars(text: String) -> String {
// اكتب الكود هنا
}
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية13التكرار عبر المتسلسلات
التكرار عبر العناصرطريقة التعداد (enumerate)التكرار عبر النصوص - الجزء الأولالتكرار عبر النصوص - الجزء الثاني2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)