Sobes.tech
Middle

რა მიზნით არის საჭირო Nothing კლასი?

sobes.tech AI

პასუხი AI-სგან

Nothing — դա տվյալների տեսակ է, որը արժեքներ չունի: Այն օգտակար է, երբ անհրաժեշտ է նշել վերադարձվող արժեքի բացակայությունը կամ այն, որ կոդի կատարմանը երբեք չի հասնի որոշակի կետ:

Օրինակներ՝

  • Երբեմն միշտ արտահայտում է արտահայտում, որը նետում է արտառոց: Կոմպիլատորը հասկանում է, որ այդ lambda-ից հետո գտնվող կոդը հասանելի չէ:

    fun fail(message: String): Nothing {
        throw IllegalStateException(message)
    }
    
    val x = fail("Ինչ-որ բան սխալ է") // x ունի `Nothing` տեսակ
    println("Այս տողը երբեք չի կատարվի")
    
  • Որպես վերադարձի տեսակ այն ֆունկցիաների համար, որոնք երբեք նորմալ չեն ավարտվում: Օրինակ, անսահման ցիկլ:

    fun loopForever(): Nothing {
        while (true) {
            // Անսահման ցիկլ
        }
    }
    
  • Ավելին, ընդհանուր ֆունկցիաների ավելի ճշգրիտ տեսակավորում: Ցույց է տալիս, որ այդ տեսակն հնարավոր չէ ինստանցիացնել։