// *** 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)
}