【发布时间】:2019-01-22 23:16:25
【问题描述】:
我正在尝试使用 kotlin 中的接收器示例的函数文字,基于本教程: https://kotlinexpertise.com/coping-with-kotlins-scope-functions/
我希望从下面的代码中返回 3,但似乎 Int 方法 dec() 未执行或“mint”变量未更新。
fun summer(block: Int.() -> Unit): Int{
var myint = 5
myint.block()
return myint
}
fun main(args: Array<String>) {
var mint = summer{
dec()
dec()
}
println(mint)
}
这里的输出是'5'。
谁能提供一些关于如何让这个“简单”示例工作的建议?
【问题讨论】:
-
我认为是因为 dec() 是一个返回值但不改变对象本身的运算符。