エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
Scalaでbreakの応用で、ブロックからbreakするときに値を返せるようなものも実現できる。基本的な発想は... Scalaでbreakの応用で、ブロックからbreakするときに値を返せるようなものも実現できる。基本的な発想は同じだが、例外のコンストラクタパラメタとして、返すべき値を持たせるところと、ブロックが任意の型を取れるようにパラメタライズされていることが異なる。 class Ret[T](val value: T) extends Throwable def ret[T](value: T) = throw new Ret[T](value) def returnable[T](f: (T => Nothing) => T): T = { try { f(ret[T] _) } catch { case e:Ret[_] => e.asInstanceOf[Ret[T]].value } }サンプルプログラム。コマンドライン引数の数が0個なら即座にブロックから"args not found"を