scala - 有没有更好的方法将可选参数传递给 Scala 中的方法?
问题描述
我有以下方法
def myMethod(val overrideValue: Option[Boolean] = None): Int = {
val myValue = overridenValue.getOrElse(getDefautValue())
// do something else
}
如果我想使用默认值,我会调用这样的方法
myMethod()
如果我想覆盖该值,我会调用这样的方法myMethod(Some(true))
或myMethod(Some(false))
.
有没有更好的方法可以省略Some(..)
解决方案
我认为保存灵活性的更好方法是使用方法重载:
def myMethod: Int = {
myMethod(getDefautValue())
}
def myMethod(argumentFlag: Boolean): Int = {
// to do something with argumentFlag
}
def getDefautValue: Boolean = ???
在这里您可以覆盖 getDefautValue,并且不需要将布尔参数包装到Option
. 但是,如果您的布尔值可以是 ,您可能会遇到一些问题null
。
推荐阅读
- python - 如何为发布配置不同的请求正文并在 django-rest-framework 中对同一端点进行调用
- laravel - 试图理解 model::make() x model::create()
- javascript - 如何在页面加载时在 HTML 选择选项中选择 JSON 结果
- javascript - WebPack-React-TypeScript:加载 CSS 和导出类型
- .net - 加载类型库/DLL(任何 Nuget 包)时出错
- c# - C# 中的运算符优先级让我很困惑
- python - 弃用警告:firefox_profile 已被弃用,请传入一个服务对象
- python - 向量化/并行化 GEKKO 方程
- commit - 我的 gitignore 文件有什么问题,因为在测试执行时我不应该在 Commit 中看到未暂存的文件(没有代码更改)?
- c++ - c++ - 调用由字符串和数字组成的marco时出现问题