fun lazyProperty(initializer:() -> Int): Int {
val result: Lazy<Int> = lazy(initializer)
return result.value
}
fun main(args: Array<String>) {
// 1.
val bar: Int = lazyProperty({ 1 + 1 })
// 2.
val foo: Int = lazyProperty() {
42
}
println("bar $bar, foo: $foo")
}
の体内で機能-のparam実装: 拳オプションが明確である - それはラムダです、 2番目の引数は、必要なパラメータを持つ関数を呼び出す通常の構文とは異なります。通常のparamsを置くべき大括弧は空であり、代わりにfunction-parameterが呼び出し側の本体に入っています!どのようにそれが可能で、何のために必要なのですか?Kotlin:私は最近、Kotlinで関数を呼び出す構文つまずいたと私はちょうどそれを得ることはありません、呼び出し元
関数に関数パラメータが1つしかない場合は、カッコを省略することもできます: 'lazyProperty {42}' – hotkey