Tag: 控制流

如何在Kotlin模式匹配可选项?

是否有可能写这样的东西,还是我们不得不恢复到Kotlin手动空检查? val meaningOfLife : String? = null when meaningOfLife { exists -> println(meaningOfLife) else -> println("There's no meaning") }

我们必须用Kotlin中的所有Control-Flow表达式覆盖所有分支?

我查看了 Kotlin网站上的文档 ,只有两个Control-Flow表达式: if和when 。 if : 该表达式需要有一个else分支 对于when : 如果没有其他分支条件得到满足,则评估else分支。 如果when用作表达式, else分支是强制的,除非编译器可以证明所有可能的情况都覆盖了分支条件。 题 所以似乎没有办法在没有覆盖所有分支的情况下创建一个Control-Flow表达式,是不是? 如果没有,有没有办法使控制流表达式错过一些分支; 如果是这样,为什么? if must have both main and 'else' branches if used as an expression才会出现以下代码 override fun onReceive(context: Context?, intent: Intent?) { intent?.let { if (it.action == MySDK.BROADCAST_ACTION_LOGIN) { mListener.get()?.loggedOn(LoggedOnUserInfo.IT) }else if (it.action == MySDK.BROADCAST_ACTION_LOGOUT) { // Occur 'if must […]