نصائح و استشارات برمجية
1.45K subscribers
545 photos
10 videos
83 files
396 links
• نصائح واستشارات برمجية متعلقة باسئلة تم طرحها

• لطرح استفسار او سؤال: @m4md24
Download Telegram
وطبعاً الشرط اللي الحلقة التكرارية تضل شغالة عشانه هو أن الرقم الكبير أقل من 0
لأننا طبعاً كل ما ناخذ رقم منه عم يقل الرقم
This media is not supported in your browser
VIEW IN TELEGRAM
السلام عليكم ورحمة الله وبركاته

أردت ان أسأل عن ال sealed class ماهو ومالفرق بينه وبين ال class العادي وايضا ماهي الحالات اللتي أحتاج استخدامه فيها، وجزاكم الله خيرا
نصائح و استشارات برمجية
أردت ان أسأل عن ال sealed class ماهو ومالفرق بينه وبين ال class العادي وايضا ماهي الحالات اللتي أحتاج استخدامه فيها
ما هو الـ Sealed Class؟
هو كلاس يمنع أي كلاس آخر من أن يرث منه إلا الكلاسات الموجودة في نفس الملف.

الفرق بين Sealed Class وبين الـ Class العادي:

الكلاس العادي: أي كلاس آخر في المشروع يمكنه أن يرث منه (مفتوح للوراثة).

الـ Sealed Class: الوراثة مقصورة فقط على الكلاسات الداخلية (أو الموجودة في نفس الملف). لا يمكن لأي كلاس خارج هذا النطاق أن يرثه.

————

من ضمن الأمثلة على الاستخدام عندما يكون لديك مجموعة محدودة ومعروفة من الاحتمالات، وتريد التعامل معها بطريقة آمنة، خاصة في when.

sealed class UiState {
data class Success(val data: String) : UiState()
data class Error(val message: String) : UiState()
object Loading : UiState()
}

fun handle(state: UiState) = when (state) {
is UiState.Success -> println(state.data)
is UiState.Error -> println(state.message)
UiState.Loading -> showLoading()
}
This media is not supported in your browser
VIEW IN TELEGRAM
طيب ينفع استبدل ال data class ب data object بدون ما يتاثر الكود صح؟
شتان الفرق
This media is not supported in your browser
VIEW IN TELEGRAM
السلام عليكم ورحمة الله وبركاته،
ماهو ال Function Reference ؟
نصائح و استشارات برمجية
ماهو ال Function Reference ؟
ميزة تمكنك من الإشارة إلى دالة موجودة واستخدامها كقيمة (Lambda) دون استدعائها مباشرة، وذلك باستخدام المعامل `::`
This media is not supported in your browser
VIEW IN TELEGRAM
يعني اقدر استخدم داله عاديه مثل
fum sum(x : Int , y : Int ){
return x + y
}
واقدر ارسلها لداله ثانيه ك lambda مثل
fun main (){
calculate(x, y , ::sum)
}

وداله calculate تستقبل الداله ك تعبير لامبدا
مثل :
fun calculate(x : Int, y : Int, operation : ( Int, Int ) -> Int ): Int {
return operation(x, y)
}


وكذا نكون حولنا داله عاديه لتعبير لامبدا؟