Tag: 函数参数

Kotlin:调用者体内的函数参数实现

fun lazyProperty(initializer: () -> Int): Int { val result: Lazy = lazy(initializer) return result.value } fun main(args: Array) { // 1. val bar: Int = lazyProperty({ 1 + 1 }) // 2. val foo: Int = lazyProperty() { 42 } println(“bar $bar, foo: $foo”) } 我最近偶然发现了在Kotlin中调用一个函数的语法,我只是不明白:第一个选项是清晰的 – 这是一个lambda,但是第二个看起来不像通常的调用具有所需参数的函数的语法。 通常应该放置params的括号是空的,而函数参数来自调用者的主体! 这怎么可能,需要什么?