如何引用when表达式的未命名的参数?
我有一个表达式如下所示:
when(foo.toString()){ "" ->'A' "HELLO" ->'B' "GOODBYE"->'C' else ->foo.toString()[0]//problematic method call duplication }
现在,我不想调用foo.toString()
两次,但我也希望这是一个单一的表达式。 有没有一种方便的方式来访问我传递给else表达式的值,比如在语言的其他地方找到的it
或this@
语法?
我目前正在使用以下解决方法:
with(foo.toString()){ when(this){ "" ->'A' "HELLO" ->'B' "GOODBYE"->'C' else ->this[0] } }
但是这引入了另一个块,并且比我想要的更不可读。 有更好的解决方案吗?
对于when块,没有指定变量,但是可以使用let()
函数来进行类似的行为,这可能比您的解决方法稍好一些,但行为相同。
foo.toString().let{ when(it){ "" ->'A' "HELLO" ->'B' "GOODBYE"->'C' else ->it[0] } }
- 图像视图不会出现在Activity上(在AppCompatActivity上可以)
- Gradle项目的自动库版本更新当前不受支持。 请手动更新您的build.gradle
- 是否有可能建立一个使用KOTLIN的make或者Soong的Android应用程序?
- 获取非包扩展属性的KProperty
- Kotlin – 混淆的属性名称
- Android Studio 3无法建立kotlin片段
- Gradle同步失败:无法GET'https://jcenter.bintray.com/org/jetbrains/kotlin/kotlin-gradle-plugin/1.1.3-2/kotlin-gradle-plugin-1.1.3-2.pom'
- kotlin.MetaData中保存的数据格式是否在任何地方记录?
- 在MANIFEST.MF中将Kotlin类指定为Main-Class入口点?