Kotlin で複数の変数を一度に定義する (例: Java: String x,y,z;) 質問する

Kotlin で複数の変数を一度に定義する (例: Java: String x,y,z;) 質問する

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 年以上前のものなので、それ以降に変更がある可能性があることに注意してください。

おすすめ記事