在 Kotlin 中设置点击监听器时,我们可以这样写:
rollButton.setOnClickListener(
object: View.OnClickListener {
override fun onClick(v: View?) {
rollDice();
}
}
)
Run Code Online (Sandbox Code Playgroud)
SAM转换后,我们可以写:
rollButton.setOnClickListener({ v -> rollDice() })
Run Code Online (Sandbox Code Playgroud)
但我注意到 kotlin 也接受:
rollButton.setOnClickListener(View.OnClickListener() { v -> rollDice() })
Run Code Online (Sandbox Code Playgroud)
也
rollButton.setOnClickListener(View.OnClickListener { v -> rollDice() })
Run Code Online (Sandbox Code Playgroud)
我想知道这里发生了什么?我的意思是应该使用匿名类或 SAM 速记法setOnClickListener来实现。OnClickListener这是某种中间阶段还是什么?
任何解释或资源链接都将受到高度赞赏。