Sobes.tech
Middle

Milleks on klassi Nothing vaja?

sobes.tech AI

Vastus AI-lt

Nothing — see andmetüüp, millel väärtusi ei ole. See on kasulik, kui tuleb märkida, et tagastatav väärtus puudub või kood ei jõua kunagi teatud punkti.

Näited:

  • Lambdafunktsioonides, mis viskavad alati erandi: Kogumismootor mõistab, et sellise lambd pärast olev kood on kättesaamatu.

    fun fail(message: String): Nothing {
        throw IllegalStateException(message)
    }
    
    val x = fail("Midagi läks valesti") // x on `Nothing` tüüp
    println("See rida ei käivitu kunagi")
    
  • Tagastustüübina funktsioonidele, mis kunagi normaalselt ei lõpe: Näiteks lõpmatu tsükkel.

    fun loopForever(): Nothing {
        while (true) {
            // Lõpmatu tsükkel
        }
    }
    
  • Täpsustades tüüpi üldistes funktsioonides: Näitab, et tüüp ei saa olla instantsiatsiooniline.