کلمه کلیدی Nothing در زبان Kotlin

چی میشه اگه بهتون بگم یه کلاسی هست به اسم Nothing که کارش اینه که هیچ کاری نکنه!

این کلاس هیج instance نداره و به یه مقداری اشاره داره که هیچ وقت وجود نداشته!

این کلاس به یه مقدار بازگشتی از متد اشاره داره که هیچ وقت قرار نیست باز بگرده!

والا منم نفهمیدم!
والا منم نفهمیدم!

گیج شدی‌!؟ این که چیزی نیست منم شدم

توی کاتلین کامپایلر با داده ایی که تو به یه متغیر میدی، میفهمه که نوع اون متغیر چی هستش مثلا زمانی که میگی var a = 10 میفهمه که a یک متغیر هستش از جنس Int ولی زمانی که بهش یه نوع ندی کامپایلر میگه این نوعش Nothing هستش، مثل var b = null الان نوع متغیر b نوع Nothing هستش.

fun main() {
    var a = 10// این نوع عدد صییح هستش یا همون Int
    
    var b = null//این نوع هیچی هست Nothing
}

این Nothing یعنی بدون نوع یا حتی برای زمانی استفاده میشه که میخوای بگی، این کد هایی که دارم هیج وقت کامپایلر قرار نیست بهشون برسه مثلا میخوای یه اررور پرت بکنی !

fun partK(matenError:String):Nothing{
    throw IllegalArgumentException(matenError)
    
    //مثلا بازگشت متد اینجاهاست
}

توی متد بالا میدونیم چون هیچ وقت اصن قرار نیست که متد return بشه چون اکسپشن داریم قبلش.

میتونیم Nothing رو هم نزاریم اینجا و از پیشفرض خودش که Unit هست استفاده بکنیم. اما کامپایلر مطمئن نمیشه که متد قرار هست return داشته باشه یا نه قرار هست Exception بده. با ست کردن Nothing روی قسمت نوع داده بازگشتی متد، کامپایلر ما مطمئن میشه که این متد قرار نیست return داشته باشه و Exception هستش.


این آخر سر دیگه بگم من مشکل ژنتیکی املا دارم و املام اصلا خوب نیست!

چنل یوتوب من

سایت من

اینستگرام من

چنل تلگرام من



منبع : https://medium.com/@agrawalsuneet/the-nothing-type-kotlin-2e7df43b0111