如果有一个函数你不想对你做任何事情,那么在Python中做一些这样的事情:
def f():
pass
我的问题是,Scala中是否有类似于pass
的内容?
答案 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 = ???