Open10
Kotlin Koansやってみる1

とみーさんに教えて貰ったKotlin Koansをやってみる。
これ。
koansという単語の意味がさっぱり分からなかったが、日本語の「公案」が由来らしい。
禅問答に関係があるんだとか。
「おぬし、ではこの問いに答えてみよ」
みたいな感じか。

ブラウザからオンラインでもできるけど、自分はIDEのプラグインでやる。

Simple Functions
Kotlinでは1行でメソッド定義できるよ、という紹介。
頻出する正規表現をメソッドするときなんかに便利そう。

Named arguments
名前付き引数。
この辺はrubyっぽい。

Default arguments
デフォルト引数。
この辺はどの言語もよくある気がする。

Triple-quoted strings
トリプルクォートで複数行文字列。
Pythonでもあった気がする。

String templates
トリプルクォートでは正規表現も使える…ってこれ逆に意図せぬところで暴発しそう。
と思ったがこれは自分の勘違い。正規表現の文字列を用意する関数を作れという問題で、トリプルクォートで正規表現が評価されるとかそういう構文ではなかった。

Nullable types
nullセーフなコードが簡単に書けるよ、というTypeScriptなんかにもある機能の紹介。
Kotlinはそれだけでなく、特に何もしなければnullを許容しない型になるらしい。
この辺はJavaと異なるところ。新興言語の強み。

Nothing type
いまいちこの機能の有り難みが分からない。
- 絶対に例外を返す関数
- 無限ループ
をする時に使うらしい。
無限ループと言っても大抵の場合はユーザーの介入によって終了させる抜け道を用意するだろうし、絶対に例外を返す関数というのも未実装のメソッド以外であんまり想像できない。あーでもログを吐いた後に処理を終了するような挙動をメソッドに切り出したい場面ならなくはないか。
でもそんなに多用する機能ではなさそうに見えるなぁ。

Lambdas
ブラケットでラムダを渡せるのは便利。