在Kotlin中一次定义多个变量(例如Java:String x,y,z;)

Sea*_*ays 35 variables kotlin

我想知道是否有任何方法可以像在Java中一样在Kotlin中定义多个变量,而在世界上几乎所有其他现有语言.

像在Java中:

String x = "Hello World!", y = null, z;
Run Code Online (Sandbox Code Playgroud)

Bas*_*uga 54

这在Kotlin语言中是不可能的.

请参考这个问题和答案,JetBrains的工程师yole说:

"在同一行上声明多个属性是许多Java样式指南所不赞成的,所以我们没有在Kotlin中实现对它的支持."

  • 这可能是`val(x,y)= arrayOf(20,"Hello")` (21认同)
  • 这太愚蠢了。Kotlin 应该是简洁的,Java 几乎不赞成任何简洁的东西……没有一点意义。 (7认同)
  • Kotlin 不允许在一行上声明多个“属性”这一事实并不能回答是否允许声明多个“变量”的问题……除非有人提供信息表明 Kotlin 中的所有变量都是属性。 (3认同)
  • 即使在Java中,在一行中声明多个变量真的是一种不好的做法吗?我认为在某些地方可以减少冗余代码。 (2认同)
  • `val(x,y) = listOf(20,"Hello")` 似乎分配一个列表只是为了在一行上初始化多个变量是一种不好的做法 (2认同)

Sam*_*hen 18

尝试这个:

fun main() {
    val (x, y, z) = listOf(1, true, "Sam")    //can be "arrayOf(), "Pair()" or other types
    println("$x, $y, $z")
}
Run Code Online (Sandbox Code Playgroud)

输出?

1, true, Sam
Run Code Online (Sandbox Code Playgroud)

  • 事实上,如果你只有两个变量,你可以使用 Pair 来实现:`val (a, b) = "a" to "b"` (3认同)