نصائح و استشارات برمجية
أردت ان أسأل عن ال sealed class ماهو ومالفرق بينه وبين ال class العادي وايضا ماهي الحالات اللتي أحتاج استخدامه فيها
ما هو الـ Sealed Class؟
هو كلاس يمنع أي كلاس آخر من أن يرث منه إلا الكلاسات الموجودة في نفس الملف.
الفرق بين Sealed Class وبين الـ Class العادي:
الكلاس العادي: أي كلاس آخر في المشروع يمكنه أن يرث منه (مفتوح للوراثة).
الـ Sealed Class: الوراثة مقصورة فقط على الكلاسات الداخلية (أو الموجودة في نفس الملف). لا يمكن لأي كلاس خارج هذا النطاق أن يرثه.
————
من ضمن الأمثلة على الاستخدام عندما يكون لديك مجموعة محدودة ومعروفة من الاحتمالات، وتريد التعامل معها بطريقة آمنة، خاصة في when.
هو كلاس يمنع أي كلاس آخر من أن يرث منه إلا الكلاسات الموجودة في نفس الملف.
الفرق بين 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()
}طيب ينفع استبدل ال data class ب data object بدون ما يتاثر الكود صح؟
نصائح و استشارات برمجية
السلام عليكم ورحمة الله وبركاته،
This media is not supported in your browser
VIEW IN TELEGRAM
نصائح و استشارات برمجية
ماهو ال Function Reference ؟
ميزة تمكنك من الإشارة إلى دالة موجودة واستخدامها كقيمة (Lambda) دون استدعائها مباشرة، وذلك باستخدام المعامل `::`
يعني اقدر استخدم داله عاديه مثل
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)
}
وكذا نكون حولنا داله عاديه لتعبير لامبدا؟
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)
}
وكذا نكون حولنا داله عاديه لتعبير لامبدا؟
نصائح و استشارات برمجية
fum sum(x : Int , y : Int ){
return x + y
}
return x + y
}
تصحيح:
fun sum(x: Int, y: Int): Int {
return x + y
}
نصائح و استشارات برمجية
يعني اقدر استخدم داله عاديه مثل fum sum(x : Int , y : Int ){ return x + y } واقدر ارسلها لداله ثانيه ك lambda مثل fun main (){ calculate(x, y , ::sum) } وداله calculate تستقبل الداله ك تعبير لامبدا مثل : fun calculate(x : Int, y : Int, operation :…
fun main() {
calculate(10, 20, ::sum)
}
fun sum(x: Int, y: Int): Int {
return x + y
}
fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int): Int {
return operation(x, y)
}
نصائح و استشارات برمجية
وكذا نكون حولنا داله عاديه لتعبير لامبدا؟
الـ Lambda أصلاً تعبير يتم استخدامه من خلال صيغة استدعاء
طيب وش الفكره اذا كنا نقدر نكتب
calculate(4, 5) { x, y -> x + y }
ونكون كتبنا كود اقل !
وكمان كيف تكتب الكود بهذه الطريقه بالرساله ممكن الطريقه لاهنت؟
calculate(4, 5) { x, y -> x + y }
ونكون كتبنا كود اقل !
وكمان كيف تكتب الكود بهذه الطريقه بالرساله ممكن الطريقه لاهنت؟
نصائح و استشارات برمجية
ونكون كتبنا كود اقل !
شي جميل، تقدر تسوي الشيئين لكن موضوع أنك تضعها بدالة وتمررها أكثر ترتيباً
نصائح و استشارات برمجية
وكمان كيف تكتب الكود بهذه الطريقه بالرساله ممكن الطريقه لاهنت؟
سبق وسردت هذه الطريقة برسالة على القناة
Forwarded from برمجة
• بعد تحديثات التيليجرام الاخيرة في الوقت الحالي، بقي يظهر لينا طريقة كتابة جديدة كدا الناس بتكتبها و بيبقى جوا الحقل اكواد بس بطريقة حلوة و ملونة، ازاي اعمل الموضوع دا زيهم؟
- ببساطة كل اللي هتعمله هو الأتي:
١. هتكتب العلامة دي ⬅️ ` ➡️ ٣ مرات
٢. و بعدها هتحدد اي الصيغة بعد ال ٣ علامات، مثلا انا عايز التنسيق يكون بلغة Kotlin.
• سؤال: وقتها هنسأل نفسنا سؤال، اللغة اللي عايزين الاكواد تتلون حسب تنسيقها دي، في العادي امتدادا الملفات بتاعتها بيبقى باسم اي؟
و ليكن مثلا انا عايز لغة Kotlin هبقى كدا هكتب اي؟
- جواب: صيغة الملفات اللي بلغة Kotlin بتبقى kt يبقى كدا هكتب بعد ال ٣ علامات كلمة kt دا بناءاً على اني عايز التنسيق يكون بلغة Kotlin
زي ما موجود في الصورة ⬆️.
٣. بعدها هتروح بالمؤشر زي ما موجود في الصورة ⬆️، و هتكتب اي كود جوا العلامات اللي عملناها 🤝🏻.