Kotlin Ternary feltételes üzemeltető

1. Áttekintés

Röviden szólva van nincs hármas üzemeltető Kotlinban. Azonban felhasználva ha és mikor kifejezések segítenek pótolni ezt a hiányt.

Ebben az oktatóanyagban megvizsgálunk néhány különböző módszert a háromszintű operátor utánzására.

2. ha és mikor Kifejezések

Más nyelvektől eltérően ha és mikor Kotlinban kifejezések. Egy ilyen kifejezés eredménye hozzárendelhető egy változóhoz.

Ezt a tényt felhasználva mindkettő ha és mikor a maga módján helyettesítheti a háromszintű operátort.

2.1. If-else használata

Vessünk egy pillantást a ha kifejezés, amely utánozza a hármas operátort:

val eredmény = ha (a) "igen" más "nem"

A fenti kifejezésben, ha a értékre van állítva igaz, a mi eredmény változó értéke: Igen. Ellenkező esetben a nem.

Érdemes ezt megjegyezni az eredmény típusa a jobb oldalon lévő kifejezéstől függ. Általában a típus az Bármi. Például, ha a jobb oldalon van egy Logikai típusú, az eredmény az lesz Logikai is:

val eredmény: Boolean = if (a == b) true else false

2.2. Használata mikor

Használhatjuk a mikor kifejezés egy hármas operátor létrehozásához:

val eredmény = mikor (a) {igaz -> "igen" hamis -> "nem"}

A kód egyszerű, egyértelmű és könnyen olvasható. Ha a van igaz, rendelje hozzá a eredmény lenni Igen. Egyébként rendelje hozzá nem.

2.3. Elvis Operator

Néha használjuk ha kifejezéseket, hogy kivonjon valamilyen értéket, ha nem nulla vagy adjon vissza egy alapértelmezettet, amikor az van nulla:

val a: Húr? = null val eredmény = ha (a! = null) egy másik "Alapértelmezett"

Ezzel is lehet ugyanezt megtenni mikor kifejezések:

val eredmény = mikor (a) {null -> "Alapértelmezett" más -> a}

Mivel ez egy ilyen általános minta, Kotlinnak van egy speciális operátora:

val result = a?: "Alapértelmezett"

A ?: Elvis operátor néven ismert. Visszaadja az operandust, ha nem nulla. Ellenkező esetben a fájl jobb oldalán megadott alapértelmezett értéket adja vissza ?: operátor.

2.4. DSL

Minden bizonnyal van egy kísértés egy DSL létrehozására, amely utánozza a hármas operátort. De Kotlin nyelvi korlátozásai túl szigorúak ahhoz, hogy lehetővé tegyék a hagyományos háromszintű szintaxis 100% -os reprodukcióját.

Mint ilyen, kerüljük el ezt a kísértést, és egyszerűen alkalmazzuk a korábban említett megoldások egyikét.

3. Következtetés

Bár Kotlinnak nincs háromszintű operátora, néhány alternatívát használhatunk - ha és mikor. Ezek nem egy szintaktikai cukor, hanem teljes kifejezések, amint azt korábban láthattuk.

Mint mindig, a kód elérhető a GitHubon.