دالة Contains
جزء من قسم الأساسيات في رحلة Swift على Coddy. الدرس 76 من 86.
عند العمل مع المصفوفات، تحتاج غالبًا إلى التحقق مما إذا كانت قيمة محددة موجودة قبل تنفيذ إجراء ما. توفّر Swift الطريقة contains() لهذا الغرض تحديدًا. وتُرجع true إذا تم العثور على العنصر، وfalse خلاف ذلك.
let fruits = ["apple", "banana", "orange"]
if fruits.contains("banana") {
print("We have bananas!")
}
// لدينا موز!هذا أنظف بكثير من كتابة حلقة للبحث في array يدويًا. تعمل الطريقة مع أي نوع من array، سواء كانت تحتوي على سلاسل نصية أو numbers أو قيم أخرى:
let numbers = [10, 20, 30, 40, 50]
print(numbers.contains(30)) // true
print(numbers.contains(99)) // falseمن حالات الاستخدام الشائعة التحقق من إدخال المستخدم مقابل قائمة من القيم المسموح بها:
let validOptions = ["yes", "no", "maybe"]
let userInput = "yes"
if validOptions.contains(userInput) {
print("Valid choice")
} else {
print("Invalid choice")
}
// خيار صالحتعمل الطريقة contains() أيضًا مع السلاسل النصية للتحقق من وجود سلسلة فرعية داخل سلسلة نصية أكبر:
let message = "Hello, Swift!"
print(message.contains("Swift")) // trueالتحدي
سهلستتلقى سطرين من الإدخال:
- قائمة separatedBy بفواصل من أسماء المستخدمين allowed (مثل:
admin,user,guest,moderator) - اسم مستخدم للتحقق منه
تحقق مما إذا كان اسم المستخدم موجودًا في قائمة allowed. إذا كان موجودًا، فاطبع Access granted. وإذا لم يكن موجودًا، فاطبع Access denied.
الخطوات:
- اقرأ قائمة separatedBy بفواصل وحوّلها إلى array من السلاسل
- اقرأ اسم المستخدم المطلوب التحقق منه
- استخدم طريقة
contains()لتحديد ما إذا كان اسم المستخدم موجودًا في قائمة allowed - اطبع message المناسبة بناءً على result
تلميح: استخدم components(separatedBy:) لتقسيم سلسلة إلى array. على سبيل المثال:
let text = "a,b,c"
let parts = text.components(separatedBy: ",")جرّب بنفسك
// اقرأ قائمة أسماء المستخدمين المسموح بها المفصولة بفواصل
let allowedList = readLine()!
// اقرأ اسم المستخدم للتحقق منه
let username = readLine()!
// TODO: اكتب الكود الخاص بك أدناه
// 1. قسّم allowedList إلى مصفوفة باستخدام components(separatedBy:)
// 2. استخدم contains() للتحقق مما إذا كان username موجودًا في المصفوفة
// 3. Print "Access granted" or "Access denied" based on the resultيتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية2المتغيرات
Let مقابل Varتوصيف الأنواع (Type Annotations)الأرقامStringBooleanقواعد التسميةمراجعة - تهيئة المتغيرات5المعاملات - الجزء الثاني
المعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيمراجعة - المنطق البسيطالمعاملات المنطقية - الجزء الثالثالمعامل الثلاثي (Ternary Operator)8حاسبة تقسيم الفاتورة
رسالة الترحيبالحصول على المدخلات14المصفوفات المتقدمة
تقطيع المصفوفات - الجزء الأولتقطيع المصفوفات - الجزء الثانيمعاملات المتسلسلاتدالة Contains3القيم الاختيارية (Optionals)
ما هي القيم الاختياريةفك القيم باستخدام If Letاستخدام Guard Letمعامل دمج Nilمراجعة - فك القيم بأمان9حلقات التكرار
حلقة For-Inحلقة Whileحلقة Repeat-WhileBreakContinueمراجعة - المضروب (Factorial)النطاقات في حلقات التكرارالحلقات المتداخلةمراجعة - الإدخال الديناميكي (Dynamic Input)تدرّب بنفسك: Playground لـ Swift