我想知道在 Kotlin 中是否有一种像 Java 和世界上几乎所有其他编程语言那样定义多个变量的方法。
像在 Java 中一样:
像在 Java 中一样:
String x = "Hello World!", y = null, z;
String x = "Hello World!", y = null, z;
你可以使用分号 (;
) 在同一行中声明(并赋值)多个变量:
val number = 42; val message = "Hello world!";
在同一行中,你也可以类似地声明(和赋值)多个属性:
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的工程师yole指出:
“在同一行上声明多个属性被许多Java样式指南所反对,因此我们没有在Kotlin中实现该功能。”
请注意,他的回答已经超过4年了,因此可能会有变化。
val (x, y) = arrayOf(20, "Hello")
是可行的,但需要注意的是,在解构赋值时,变量类型需要与数组中的元素类型匹配。 - Venkata Rajuval(x,y) = listOf(20,"Hello")
看起来为了在一行代码上初始化多个变量而分配列表是不良实践。 - Graham试试这个:
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 (a, b) = "a" to "b"
- Jamie Craaneval (name, age) = person