Java や世界中の他のほぼすべての既存言語のように、Kotlin でも一度に複数の変数を定義する方法があるのか疑問に思っていました。
Javaの場合のように:
String x = "Hello World!", y = null, z;
ベストアンサー1
複数の変数セミコロン ( ) を使用して 1 行に記述します;
。
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のエンジニアヨル次のように述べています。
「同じ行に複数のプロパティを宣言することは、多くの Java スタイル ガイドで好ましくないため、Kotlin ではそのサポートを実装していません。」
彼の回答は 4 年以上前のものなので、それ以降に変更がある可能性があることに注意してください。