Scala和Python的通行证

时间:2012-12-07 12:56:20

标签: scala

我在想,是否有相当于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()的用法)。有没有更好的方法来模拟这种行为?

1 个答案:

答案 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