5

Pythonのパス式に相当するものはありますか? アイデアは、実装なしでメソッド シグネチャを記述し、それらをコンパイルして、いくつかのライブラリ プロトタイピング用にそれらのシグネチャを型チェックすることです。これを使用して、そのような動作をシミュレートすることができました:

def pass[A]:A = {throw new Exception("pass"); (new Object()).asInstanceOf[A]}

今私が書くとき:

def foo():Int = bar()
def bar() = pass[Int]

それは動作します (型チェックはしますが、ランタイムは爆発します。これは問題ありません) が、私の実装は適切ではありません (たとえば、java.lang.Object() の使用法)。そのような動作をシミュレートするより良い方法はありますか?

4

1 に答える 1

9

Scala 2.10 ではPredefに???メソッドがあります。

scala> ???
scala.NotImplementedError: an implementation is missing
  at scala.Predef$.$qmark$qmark$qmark(Predef.scala:252)
  ...

2.9 では、次のように独自のものを定義できます。

def ???[A]:A = throw new Exception("not implemented")

明示的な型パラメーターなしでこのバージョンを使用すると、Aと推測されますNothing

于 2012-12-07T13:02:01.153 に答える