تحويل الأنواع
جزء من قسم الأساسيات في رحلة Swift على Coddy. الدرس 34 من 86.
بما أن readLine() تُرجع قيمة من النوع String?، فغالبًا ستحتاج إلى تحويل هذه السلسلة النصية إلى رقم لإجراء العمليات الحسابية. تتطلب Swift تحويلًا صريحًا للنوع. فهي لا تحوّل السلسلة النصية تلقائيًا إلى عدد صحيح أو عدد عشري.
لتحويل string إلى عدد صحيح، استخدم المُهيِّئ Int(). ونظرًا لأن التحويل قد يفشل (فقد تحتوي string على أحرف بدلًا من أرقام)، فإنه يعيد قيمة اختيارية:
let input = "42"
if let number = Int(input) {
print(number + 10) // المخرجات: 52
}للأعداد العشرية، استخدم Double():
let priceString = "19.99"
if let price = Double(priceString) {
print(price * 2) // المخرجات: 39.98
}يكون هذا مفيدًا بشكل خاص عند دمج readLine() مع العمليات الرقمية. يمكنك ربط عمليات فك التغليف معًا:
if let input = readLine(), let age = Int(input) {
print("Next year you'll be \(age + 1)")
}تعني الفاصلة في عبارة if let أن الشرطين يجب أن ينجحا: يجب أن يكون input موجودًا، وأن يكون قابلًا للتحويل إلى integer.
التحدي
سهلاقرأ مدخلين: عددًا عشريًا كسلسلة نصية وinteger كسلسلة نصية. حوّلهما إلى their أنواع عددية المناسبة واحسب حاصل ضربهما.
ستتلقى المدخلات التالية:
- السطر الأول: عدد عشري (على سبيل المثال،
"3.5") - السطر الثاني: عدد صحيح (على سبيل المثال،
"4")
استخدم readLine() لقراءة كلا المدخلين. حوّل المدخل الأول إلى Double والثاني إلى Int. ثم اضربهما معًا واطبع النتيجة.
استخدم if let مع الربط الاختياري المتسلسل لإلغاء التفاف كل من المدخل والقيمة المحوّلة بأمان.
اطبع: حاصل ضرب العددين باعتباره Double
جرّب بنفسك
// اقرأ الرقم العشري كسلسلة نصية
if let decimalString = readLine() {
// اقرأ العدد الصحيح كسلسلة نصية
if let intString = readLine() {
// TODO: اكتب الكود الخاص بك أدناه
// حوّل decimalString إلى Double و intString إلى Int باستخدام if let
// ثم احسب واطبع حاصل ضربهما
}
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس الأساسيات
4المعاملات - الجزء الأول
المعاملات الحسابيةمعامل باقي القسمةالإسناد المركبمراجعة - عمليات رياضية بسيطةمعاملات المقارنة7أساسيات الإدخال والإخراج
دالة الطباعةتضمين النصوصإدخال ReadLineتحويل الأنواعمراجعة - حتى 120مراجعة - True أو False10الدوال
تعريف دالةالمعاملات والوسائطقيم الإرجاعتسميات الوسائطمراجعة - دالة Sigmaمراجعة - دالة Validationالقيم الافتراضية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)تدرّب بنفسك: Playground لـ Swift