Scala中Python的Pass的等价物

时间:2013-09-20 05:00:36

标签: python scala

如果有一个函数你不想对你做任何事情,那么在Python中做一些这样的事情:

def f():
    pass

我的问题是,Scala中是否有类似于pass的内容?

4 个答案:

答案 0 :(得分:9)

pass是Python的语法怪癖。在某些情况下,语法需要您编写语句,但有时您不希望在那里使用语句。这就是pass的用途:它是一个什么都不做的陈述。

Scala从不要求你写一个语句,因此不写一个语句的方法就是不写一个语句。

答案 1 :(得分:6)

我认为()类似。

scala> def f() = ()
f: ()Unit

scala> f              

scala>

答案 2 :(得分:2)

通常,您可以将Unit替换为pass。你什么也不做,行的评估结果为Unit,类似于Java的void,但它本身就是一个显式类型。

// implicit return value of type Unit
def showMsg(msg:Option[String]) = msg match {
    case None => Unit
    case Some(m) => println(m)
}

答案 3 :(得分:1)

据我所知,python pass用于尚未实现的案例。如果你在scala中需要这样的东西,那么使用???它类似于(),但它是Nothing的单例实例。您的代码将编译,但如果您调用此方法,它将与NotImplementedError

一起崩溃
def foo: ResultType = ???