scalaに関するymseのブックマーク (1)

  • scala.Nothingは何のためにあるのか - kmizuの日記

    scala.NothingはScalaのクラス階層における、「一番下」に位置するクラスで全ての型のサブタイプになるが、これが何のためにあるかという点でつまづく人が時々居るようだ。というわけで、scala.Nothingがあると何が嬉しいのかという点をちょっと説明してみようと思う。 例外やエラーを投げる式のような、戻ってこない計算の型として使う たとえば、次のような、階乗を計算する関数factorialを考えてみよう。factorialはnの階乗を計算する関数で、nを引数に取りnの階乗を計算して返す。また、nは0以上の整数でなければならないものとし、0未満の値が引数として渡されたらIllegalArgumentExceptionを投げるものとする。このとき、factorialの定義は、たとえば def factorial(n: Int): Int = { if(n < 0) throw ne

    scala.Nothingは何のためにあるのか - kmizuの日記
    ymse
    ymse 2023/05/02
  • 1