新版本的变更 / Kotlin 1.4

// *** before: ***
interface OldPrinter {
    fun print(text: String)
}

fun printOld(p: OldPrinter) = p.print("Hello")

// a Kotlin interface required an object expression, only Java interfaces
// accepted a lambda
val old = object : OldPrinter {
    override fun print(text: String) = println(text)
}

// *** in version 1.4: ***
fun interface Printer {
    fun print(text: String)
}

fun printText(p: Printer) = p.print("Hello")

fun main() {
    printOld(old)

    // a lambda is enough for a fun interface
    printText { text -> println(text) }

    val bracketed = Printer { println("[$it]") }
    printText(bracketed)
}