我在想,是否有相当于python的pass表达式?我们的想法是编写没有实现的方法签名,并编译它们只是为了某些库原型的类型检查签名。我能够用这种方式来模拟这种行为:
def pass[A]:A = {throw new Exception("pass"); (new Object()).asInstanceOf[A]}
现在我写的时候:
def foo():Int = bar()
def bar() = pass[Int]
它的工作原理(它可以运行,但运行时爆炸,这很好),但我的实现感觉不对(例如java.lang.Object()的用法)。有没有更好的方法来模拟这种行为?
答案 0 :(得分:9)
在Scala 2.10中,Predef中有???
method。
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
。