如何打破 kotlin when 子句?

Mat*_*zak 0 java android break switch-statement kotlin

假设我有 Java 代码

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    switch (motionEvent.getActionMasked()) {
            case MotionEvent.ACTION_DOWN: {
                if (something()) {
                     break;
                }
                // do more stuff here
                break;
            }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我为这样的东西重写了它,但我不确定它是正确的,它没有任何缺陷。

override fun onTouch(view: View, motionEvent: MotionEvent): Boolean {
    when (motionEvent.actionMasked) {
            MotionEvent.ACTION_DOWN -> {
                if (something()) {
                    return false
                }
                // do more stuff here
            }
    }
    return false
}

Run Code Online (Sandbox Code Playgroud)

在 kotlin 中break像在 java switch 语句中一样模拟/实现的最佳方法是什么?

Raf*_*ani 5

Kotlinwhen表达式switch在执行方面与 Java 表达式有很大不同。在 Java 中,如果您不中断,switch 调用将尝试运行下一个可用案例。在 Kotlin 中,只要满足第一个条件,when调用就会自动中断,因此您实际上并不需要breakKotlinwhen表达式中的语句。