trajan's salon

to be simple :j

Kotlinゆったり入門(2日目)

こんにちは、@trajanmeです。
今日も昨日に引き続き、Kotlinに入門していこうと思います。

trajanme.hateblo.jp

本日は、関数です。

関数

Kotlinでは、関数の書き方は2パターンあるようです。
単純に1つの式で書けるような場合は、

fun square(num: Int) = num * num

みたいに書くことができます。
感覚的には、式用の変数みたいな感じでしょうか。
関数の型は式から推測してくれるみたいですね。

で別パターンが波括弧{}を使ったバージョンで、こちらは型を明記する必要があるそう。

fun getMonthName(n: Int): String {
  return when(n) {
    1 -> "January"
    2 -> "February"
    3 -> "March"
    4 -> "April"
    else -> "Others"
  }
}

こっちは、関数の定義っぽさがあります。

引数の指定、デフォルトもできるようです。
また、varargをつけることで、可変長引数にも対応してくれています。

Fibonacci

よくあるやつですね。
さすがにIntでだと桁数的にfib(40)くらいまでが精々でしょうが。
あとこの書き方は同じ計算を何度もするので無駄が多く微妙ですが、本筋から逸れて面倒なのでこれで。

fun fib(n: Int): Int {
  if (n == 0) return 1
  else if (n == 1) return 1
  else {
    return fib(n-2) + fib(n-1)
  }
}

再帰だったり、関数の中に関数書いたりもできるみたいですが、実際に使う場面になったらもう少しじっくり考えてみたいと思います。笑