gpt4 book ai didi

scala - Scala默认参数和null

转载 作者:行者123 更新时间:2023-12-03 09:17:19 25 4
gpt4 key购买 nike

我有这样的方法:

def aMethod(param: String = "asdf") = {
...
}

如果按如下方式调用方法,则为param赋予默认值“asdf”:
aMethod() ...

但是我想要的是,如果使用 null调用该方法,那么还将应用默认值:
aMethod(null)  //inside the method, I can use `param` and it has the value "asdf".

在Scala中执行此操作的最佳方法是什么?我可以想到模式匹配或简单的 if语句。

最佳答案

模式匹配

def aMethod(param: String = null) {
val paramOrDefault = param match {
case null => "asdf"
case s => s
}
}

选项(隐式)
def aMethod(param: String = null) {
val paramOrDefault = Option(param).getOrElse("asdf")
}

选项(明确)
def aMethod(param: Option[String] = None) {
val paramOrDefault = param getOrElse "asdf"
}

一旦您习惯了最后一种方法,它实际上是最惯用和易读的。

关于scala - Scala默认参数和null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9727401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com