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

我想知道是否有办法在 Kotlin 一次定义多个变量,就像 Java 和世界上几乎所有其他现有语言一样。

就像 Java:

String x = "Hello World!", y = null, z;
57900 次浏览

您可以使用分号(;)在一行中声明(并分配)多个 变量 :

val number = 42; val message = "Hello world!";

您还可以类似地在同一行中声明(并分配)多个 < strong > 属性 :

class Example {
var number = 42; var message = "Hello world!";
}

一个可运行的例子说明了你可以使用 试试在 tio.run 上联机的见解(它在我的本地环境中使用 Kotlin 版本1.1.2-5(JRE 1.8.0 _ 144-b01)也工作得很好) :

class Example {
// declaring multiple properties in a single line
var number:Int; var message:String;


// constructor that modifies the parameters to emphasize the differences
constructor(_number:Int, _message:String) {
number = _number * 2
message = _message.toUpperCase()
}
}


fun main(args: Array<String>) {
// declaring multiple read-only variables in a single line
val number = 42; val message = "Hello world!";
 
// printing those local variables
println("[main].number = " + number)
println("[main].message = " + message)
 
// instantiating an object and printing its properties' values
val obj = Example(number,message)
println("[Example].number = " + obj.number)
println("[Example].message = " + obj.message)
}

执行结果:

[main].number = 42
[main].message = Hello world!
[Example].number = 84
[Example].message = HELLO WORLD!

作为一个矛盾的旁注,在 这个问题和答案中,JetBrains 的工程师 耶尔指出:

”在同一行上声明多个属性不受 许多 Java 样式指南,所以我们没有实现对它的支持 科特林”

请注意,他的答案是超过4岁,所以可能有变化,因为那时。

试试这个:

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

产出:

1, true, Sam

在这里,您可能还会发现“结构化声明”很有帮助。

举个例子:

val (name, age) = person

详情请看 https://kotlinlang.org/docs/destructuring-declarations.html