【KotlinとJava】条件式の利用

06 条件式の利用

KotlinとJava

またもやif文が登場するが、今度は式として利用できるというサンプルだ。式というのは処理に対して値を返却するという性質を持つ。

Use a conditional expression.kt

fun main(args: Array<String>) {
    println(max(args[0].toInt(), args[1].toInt()))
}

fun max(a: Int, b: Int) = if (a > b) a else b

リンク

関数の宣言fun max(a: Int, b: Int)に対して、if (a > b) a else bという式が関数に代入されている。maxreturnがないのは、if文が値を返却する特性があるからか。

ちなみに、次のように間に改行をいれても問題ないので、when文でも同じようなことができるだろう。

fun max(a: Int, b: Int)  
        = if (a > b) a else b

また、Sting#toIntが用意されているのはうれしいね。

Javaで記述

対比ができるようにJavaでも同じものを記述してみよう。

public class Exp06 {  
    public static void main(String[] args) {  
        System.out.println(
            max(Integer.parseInt(args[0]), Integer.parseInt(args[1])));  
    }  
  
    private static int max(int a, int b) {  
        return (a > b) ? a : b;  
    }  
}

Kotlinと比べると、所々で冗長な書き方となっている。max関数の戻り値のintをKotlinで宣言しないのは、型推論が働いているのだろう。
もちろん、Kotlinのmax関数は以下のように明示的に宣言することもできる。

fun max(a: Int, b: Int) : Int = if (a > b) a else b

コメント

このブログの人気の投稿

【KotlinとJava】分解宣言

wxPythonでのモーダルダイアログ作成

【Delphi Sample】並列プログラミング1