let وrun
أجروا عمليات على الكائنات
let وrun درس مجاني في Kotlin Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
ما هي دوال النطاق؟
يوفر Kotlin خمس دوال نطاق: let وrun وwith وapply وalso. وتتيح لك تنفيذ كتلة من التعليمات البرمجية على كائن داخل نطاق مؤقت.
- تشير إلى الكائن باستخدام
itأوthis. - تعيد الكتلة الكائن نفسه أو نتيجة lambda.
سنركز في هذا الدرس على let وrun.
دالة let
تنفّذ let كتلةً يكون فيها الكائن متاحًا باسم it، وتُرجع نتيجة اللامبدا.
وهي مفيدة جدًا لتشغيل التعليمات البرمجية فقط عندما لا تكون القيمة تساوي null، ولتحويل قيمة إلى قيمة أخرى.
fun main() {
val name = "Alice"
val length = name.let {
println("Name is $it")
it.length
}
println("Length: $length")
}استخدام let مع القيم القابلة لـ null
أشيع استخدام لـ let هو مع معامل الاستدعاء الآمن ?. لا تُنفَّذ الكتلة إلا عندما لا تكون القيمة تساوي null.
fun main() {
val name: String? = "Bob"
name?.let {
println("Hello, $it")
}
val empty: String? = null
empty?.let {
println("This never prints")
}
println("Done")
}إعادة تسمية it في let
يمكنك داخل let إعادة تسمية it باسم ذي معنى من خلال التصريح بمعامل لامبدا.
fun main() {
val price = 100
price.let { amount ->
println("The amount is $amount")
}
}دالة run
تنفّذ run كتلةً يكون فيها الكائن متاحًا باسم this، وتُرجع نتيجة اللامبدا.
استخدمها عندما تريد الوصول إلى الأعضاء مباشرةً من دون بادئة.
fun main() {
val text = "Kotlin"
val upper = text.run {
println("Length is $length")
uppercase()
}
println(upper)
}run من دون مستقبل
يمكن أيضًا استدعاء run من دون كائن. فهي تنفّذ كتلةً ببساطة وتُرجع نتيجتها. ويفيد ذلك في تجميع التعليمات وحساب قيمة.
fun main() {
val result = run {
val a = 5
val b = 10
a + b
}
println("Result: $result")
}it في مقابل this
يتمثل الفرق الأساسي بين let وrun في طريقة إشارتهما إلى الكائن:
- تستخدم
letالقيمةit، وهي معامل. - تستخدم
runالقيمةthis، وهي مستقبل يكون ضمنيًا غالبًا.
تُرجع كلتاهما نتيجة آخر تعبير في الكتلة.
fun main() {
val word = "hi"
val a = word.let { it.length }
val b = word.run { length }
println("$a $b")
}تسلسل الاستدعاءات باستخدام let
بما أن let تُرجع نتيجة اللامبدا، يمكنك تسلسل الاستدعاءات وتحويل القيمة خطوةً بعد خطوة.
fun main() {
val number = 4
val output = number
.let { it * 2 }
.let { it + 1 }
println(output)
}استخدام run للتحقق من null والحساب
مثل let، تعمل run مع الاستدعاءات الآمنة. فهي تجمع بين التحقق من null والوصول إلى الأعضاء في كتلة واحدة.
fun main() {
val message: String? = "Welcome"
val length = message?.run {
println(this)
length
}
println("Length: $length")
}إرجاع أنواع مختلفة
يمكن لكلتا الدالتين إرجاع نوع يختلف عن نوع الكائن. ويكون نوع الإرجاع هو نوع القيمة التي يقيّم إليها السطر الأخير، أيًا كان.
fun main() {
val n = 10
val label: String = n.let { "Value is $it" }
println(label)
}متى تستخدم let أو run
استخدم let للعمليات الآمنة مع null ولتحويل القيم عندما تكون القراءة باستخدام it واضحة.
استخدم run عندما تريد استدعاء عدة أعضاء للكائن وحساب نتيجة، مع إتاحة الوصول المباشر عبر this.
تحقق سريع
اختبر مدى فهمك لـ let وrun.
مراجعة
تعلّمت دالتي النطاق اللتين تُرجعان نتيجة:
- تكشف
letعن الكائن باسمitوتُرجع نتيجة اللامبدا، ولذلك فهي مناسبة للتحويلات الآمنة مع null. - تكشف
runعن الكائن باسمthisوتُرجع نتيجة اللامبدا، ولذلك فهي مناسبة لتجميع عمليات الوصول إلى الأعضاء.
ستتعلم بعد ذلك تهيئة الكائنات باستخدام apply وإضافة الآثار الجانبية باستخدام also.
تعلم Kotlin مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 51
- الدروس
- 203
الأسئلة الشائعة
هل درس «let وrun» مجاني؟
نعم — نص درس «let وrun» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Academy 4 دروس في المجموع.
ماذا ستتعلم في «let وrun»؟
أجروا عمليات على الكائنات تتمرن على Kotlin Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Academy؟
لا تُشترط خبرة سابقة. Kotlin Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «let وrun»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Academy هذا؟
نعم. كل درس في Kotlin Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- let وrun
- apply وalso
- with
- اختيار الأنسب