如果有一个你不想对你做任何事情的函数,只需在 Python 中执行以下操作:
def f():
pass
pass
我的问题是,在 Scala 中是否有类似的东西?
pass
是 Python 的一个语法怪癖。在某些情况下,语法要求你写一个语句,但有时你不想要一个语句。这就是pass
目的:这是一个什么都不做的声明。
Scala 从不要求您编写语句,因此不编写语句的方法就是不编写语句。
我认为()
是相似的。
scala> def f() = ()
f: ()Unit
scala> f
scala>
据我了解,pythonpass
用于尚未实现的案例。如果你在 scala 中需要这样的东西,那么使用???
它类似于()
,但它是一个返回 Nothing ( def ??? : Nothing = throw new NotImplementedError
) 的函数。您的代码将编译,但如果您调用这样的方法,它会崩溃NotImplementedError
def foo: ResultType = ???
一般可以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)
}