التحويلات العددية الصريحة
حوّل بين الأنواع العددية عمدًا لتجنب الأخطاء.
التحويلات العددية الصريحة درس مجاني في Swift Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Swift Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Swift Academy 4 دروس في المجموع.
يتطلب Swift تحويلًا صريحًا
لا يحوّل Swift الأنواع الرقمية تلقائيًا. وللجمع بين Int وDouble، يجب تحويل أحدهما صراحةً.
let count = 3
let price = 2.5
let total = Double(count) * price
print(total)لماذا لا يوجد تحويل ضمني
قد تؤدي التحويلات الضمنية إلى فقدان البيانات أو تغيير المعنى دون تنبيه. لذلك يجعلك Swift تصرّح بنيتك، مما يمنع الأخطاء الخفية.
let whole = 7
let fraction = 0.5
let result = Double(whole) + fraction
print(result)تحويل Int إلى Double
غلّف العدد الصحيح داخل Double(...) للحصول على تمثيله بالفاصلة العائمة. يلزم ذلك قبل إجراء القسمة الحقيقية.
let a = 7
let b = 2
let ratio = Double(a) / Double(b)
print(ratio)تحويل Double إلى Int
يؤدي استخدام Int(...) على قيمة Double إلى اقتطاعها باتجاه الصفر، مع حذف الجزء الكسري، وليس إلى تقريبها.
let value = 3.99
print(Int(value))
print(Int(-3.99))التقريب قبل التحويل
إذا أردت التقريب بدلًا من الاقتطاع، استدعِ .rounded() أولًا، ثم حوّل القيمة إلى Int.
let value = 3.6
let rounded = Int(value.rounded())
print(rounded)التحويل بين أنواع الأعداد الصحيحة
حتى التحويل من عدد صحيح إلى عدد صحيح آخر يتطلب تحويلًا صريحًا، مثل Int(small) أو Int8(big)، لأن النطاقات تختلف.
let small: Int8 = 100
let big: Int = Int(small)
print(big + 1000)تحويل يؤدي إلى تجاوز النطاق
يؤدي تحويل قيمة لا تتسع لها صلاحية النوع الهدف إلى خطأ في وقت التشغيل. تحقّق من النطاق أولًا عندما لا تكون متأكدًا.
let n = 200
if n <= Int(Int8.max) {
print("fits")
} else {
print("would overflow Int8")
}المهيئات الرقمية القابلة للفشل
تستخدم بعض التحويلات مهيئات قابلة للفشل، مثل Int8(exactly:)، التي تُرجع قيمة اختيارية وتُرجع nil عندما لا تتسع القيمة للنوع بدقة.
let ok = Int8(exactly: 100)
let bad = Int8(exactly: 300)
print(ok as Any)
print(bad as Any)تحويل String إلى عدد
يتطلب تحويل String إلى عدد صراحةً أيضًا، وقد يفشل؛ إذ يُرجع قيمة اختيارية إذا لم يكن النص عددًا صالحًا.
let text = "42"
if let n = Int(text) {
print("Parsed:", n)
}
print(Int("hello") as Any)دمج العمليات الحسابية على أنواع رقمية مختلفة
النمط المعتاد هو تحويل جميع المعاملات إلى نوع مشترك، ثم إجراء الحساب، ثم تحويل النتيجة النهائية مجددًا عند الحاجة.
let items = 5
let pricePerItem = 1.99
let total = Double(items) * pricePerItem
let rounded = (total * 100).rounded() / 100
print("Total:", rounded)يحافظ التحويل على أمان الشيفرة
توضح التحويلات الصريحة مواضع تغيّر الدقة، مما يجعل الشيفرة الرقمية أسهل في المراجعة والفهم.
let measured = 9.81
let asInt = Int(measured)
let backToDouble = Double(asInt)
print(measured, asInt, backToDouble)اختبار سريع
تنبّأ بنتيجة تحويل Double إلى Int.
مراجعة: التحويلات الرقمية الصريحة
لقد تعلمت أن Swift لا يحوّل الأنواع الرقمية ضمنيًا، وأن Int(...) يقتطع قيم Double بينما يوسّع Double(...) قيم Int، وأن المهيئات القابلة للفشل مثل Int8(exactly:) وInt("text") تُرجع قيمًا اختيارية عندما يتعذر نجاح التحويل.
let pieces = 7
let share = Double(pieces) / 2.0
print("Share:", share)
print("Truncated:", Int(share))الأسئلة الشائعة
هل درس «التحويلات العددية الصريحة» مجاني؟
نعم — نص درس «التحويلات العددية الصريحة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Swift Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Swift Academy 4 دروس في المجموع.
ماذا ستتعلم في «التحويلات العددية الصريحة»؟
حوّل بين الأنواع العددية عمدًا لتجنب الأخطاء. تتمرن على Swift Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Swift Academy؟
لا تُشترط خبرة سابقة. Swift Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «التحويلات العددية الصريحة»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Swift Academy هذا؟
نعم. كل درس في Swift Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- أنواع الأعداد الصحيحة ونطاقاتها
- الأعداد العشرية: Double مقابل Float
- التحويلات العددية الصريحة
- الثوابت العددية والشرطات السفلية