在 Kotlin 中的分支条件下使用传递给的参数?

约翰

我有一些大致如下所示的代码:

val myObject = myObjectRepository.findById(myObjectId);    
when {        
    matchesSomething(myObject) -> doSomethingWithMyObject(myObject)
    matchesSomethingElse(myObject) -> doSomethingElseWithMyObject(myObject)
    else -> log.warn("No match, aborting");
}

虽然这有效,但我认为如果我只需要访问myObject范围内的以下内容(不起作用)将是一个改进when

when(myObjectRepository.findById(myObjectId)) { myObject ->
    matchesSomething(myObject) -> doSomethingWithMyObject(myObject)
    matchesSomethingElse(myObject) -> doSomethingElseWithMyObject(myObject)
    else -> log.warn("No match, aborting"); 
}

我在这里得到的错误是:

未解析的引用:myObject

你能在 Kotlin 中做这样的事情吗?如果可以,怎么做?如果没有,是否有特殊原因不允许这样做?

JB尼泽

文档中所示,正确的语法是

val myObject = myObjectRepository.findById(myObjectId);
when {
    matchesSomething(myObject) -> doSomethingWithMyObject(myObject)
    matchesSomethingElse(myObject) -> doSomethingElseWithMyObject(myObject)
    else -> log.warn("myObject not found, aborting")
}

或者,要真正匹配您的第一个代码段的作用:

val myObject = myObjectRepository.findById(myObjectId);
when(myObject) {
    null -> log.warn("myObject not found, aborting");
    matchesSomething(myObject) -> doSomethingWithMyObject(myObject)
    matchesSomethingElse(myObject) -> doSomethingElseWithMyObject(myObject) 
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在任务分支条件下使Rubocop警告静音?

来自分类Dev

Kotlin 使用或在参数中?

来自分类Dev

如何将参数传递给kotlin脚本?

来自分类Dev

如何在Kotlin中将参数传递给匿名Lambda函数?

来自分类Dev

将参数传递给Kotlin中的自定义吸气剂

来自分类Dev

将静态方法作为参数传递给Kotlin中的另一个方法

来自分类Dev

SQL在分支条件下联接表

来自分类Dev

无法将Kotlin接口的快速实现传递给Kotlin本机

来自分类Dev

如何将类类型传递给kotlin中的函数?

来自分类Dev

在 kotlin 中根据条件使用 map 函数

来自分类Dev

在Android中将变量传递给Kotlin Coroutine

来自分类Dev

Kotlin:将引用/指针传递给函数

来自分类Dev

传递给varargs参数时,Kotlin是否可以过滤掉空参数?

来自分类Dev

Kotlin将KType传递为通用参数

来自分类Dev

Kotlin高阶函数参数:传递子类型

来自分类Dev

Kotlin:将函数范围作为参数传递

来自分类Dev

Kotlin中的枚举注释

来自分类Dev

Kotlin中的嵌套注释

来自分类Dev

在Kotlin中如何分组

来自分类Dev

在Kotlin中合格

来自分类常见问题

Kotlin中的交换功能

来自分类常见问题

Kotlin中的HTTP请求

来自分类Dev

Kotlin中的Android Parcelable

来自分类Dev

Kotlin中的类声明

来自分类Dev

Kotlin中的记忆功能

来自分类Dev

Kotlin中的扩展字段

来自分类Dev

Kotlin中的静态数据

来自分类Dev

Kotlin中的RecyclerView itemClickListener

来自分类Dev

Kotlin类中“ this”的目的