AN
Size: a a a
AN
с#
с#
AN
AL
с#
AH
с#
class Decorator {
inline operator fun <T> decorate(func: KDecoratable<T>): T {
val result = func()
val params = func.params.joinToString(", ") { it.value }
println("${func.name}($params): $result")
return result
}
}AM
с#
с#
AL
fun <T> transactional(action: () -> T): T, а как fun <T> transactional(action: TransactionalContext.() -> T): T, то как и в случае дополнительного ресивера у нас появляется ещё один контекст, в котором функция может работать.с#
class DebugDelegate {
inline operator fun <T> delegateFunction(func: KDecoratable<T>): T {
val result = func()
val params = func.params.joinToString(", ") { it.value }
println("${func.name}($params): $result")
return result
}
}
val debug = DebugDelegate()
fun fibonacci(at: Int) by debug, memoizable {
// Body
}с#
AN
е
AN
AM
AN
AN