这纯粹是一个编码风格的问题。
我正在调用的函数返回一个Option
,如果它等于 ,我想采取特定的操作None
。
例如,假设我正在尝试在启动时创建一个默认用户(如果它尚不存在)。我会调用一个函数来尝试查找与默认用户匹配的用户,并返回一个Option[User]
.
如果该返回值为None
,我想运行一些用户创建代码。如果没有,我就完了。
我想知道最惯用的 Scala 语法是什么。到目前为止,我所拥有的是:
def getUser(name: String): Option[User] = ...
getUser("admin") getOrElse createUser("admin", "ChangeThisNow!")
getUser("admin") match {
case None => createUser("admin", "ChangeThisNow!")
case _ =>
}
if(getUser("admin") == None) createUser("admin", "ChangeThisNow!")
第一个解决方案似乎是最实用的解决方案,但我不禁觉得可能会有更好的解决方案 - 可能通过使用部分应用的功能,我承认我仍然有点模糊。