bhylu.com

Advertisements

Kotlin When

Match a hire state without repeating long if chains.

How it works

when selects a branch by value or by condition. Several values can share a branch, and in checks a range or collection. A when used as an expression must cover all possible cases. Sealed types later allow the compiler to check a finite set of state variants.

Run this Kotlin example

These are local Kotlin/JVM programs. Install a JDK and the compiler using the official Kotlin compiler guide, or use an IDE with Kotlin support. Check java -version and kotlinc -version in a new terminal. The reviewed compiler is Kotlin 2.4.21 with a JVM 21 target, executed on Temurin JDK 25.0.5. Use JDK 21 or newer for this target. Android, Kotlin/JS and Kotlin/Native require separate platform projects and are not the tested environment here.

Save the complete source as when.kt in its own learning folder. The package line gives this example a namespace, not a network address. Bhylu has no Kotlin browser runner; do not use the JavaScript or Python editor. Apache, PHP and MySQL are not required.

Compile with kotlinc when.kt -jvm-target 21 -include-runtime -d lesson.jar, then run java -jar lesson.jar. Use a learning folder you own and keep generated JARs outside the website. These sources require no third-party application libraries.

Download the complete when.kt · Download all source files with hash checks

For the optional collection, save download-examples.mjs in a new learning folder and run node download-examples.mjs. A local preview uses node download-examples.mjs http://127.0.0.1:8000/examples/kotlin/. It refuses an existing bhylu-kotlin-examples folder and installs or executes no Kotlin code. Compile one ordinary lesson at a time by filename.

Example

when.kt

package bhylu.lessons.k_when

fun main() {
    val code = 2
    val notice = when (code) {
        0 -> "Available"
        1, 2 -> "On hire"
        in 3..5 -> "Being checked"
        else -> "Unknown"
    }
    println(notice)
}

Expected result

On hire

The first matching branch supplies the result. There is no automatic fall-through. The explicit default keeps an unrecognised integer from being mistaken for a known state.

For exact language and library contracts, consult the official Kotlin documentation. These fictional fixtures are learning programs, not a deployed hire service.

Advertisements