読者です 読者をやめる 読者になる 読者になる

Kotlinで未実装を表す方法

小ネタです。

Scalaでは ??? という関数を実行することで、未実装を表す scala.NotImplementedError を返すことができます。

Kotlinにも例外 kotlin.NotImplementedError があり、それを呼び出す関数として TODO() が定義されています。

github.com

使い方

メソッドに対して、コンパイルを通しつつ未実装を表す場合は、以下のように書きます。 引数に文字列を指定することで、例外にコメントを追加することも可能です。

fun hoge(s: String): String = TODO()

// 未実装コメントを追加することも可能。
fun fuga(s: String): String = TODO("未実装ですよ")

また、inline修飾子が付いているため、メソッドの途中に書くことでIntellijの場合はそれ以降の処理が実行されないという警告が表示されます。

fun foo(s: String): String = {

  println("before: $s")

  TODO()

  println("after: $s")

}

f:id:rabitarochan:20160225082936p:plain

まとめ

未実装を表す kotlin.NotImplementedErrorTODO() について紹介しました。

TODO() のように、例外のみを返すメソッドをインライン展開させるという書き方も便利なので、ぜひ使ってみてください。