【KotlinとJava】条件式の利用
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
という式が関数に代入されている。max
にreturn
がないのは、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
コメント
コメントを投稿