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.