scala - 在 Scala 中,需要将可能为 null 的值与可能为“null”的搜索字符串进行比较
问题描述
我对 Scala 比较陌生,想找到一种更清洁的方法:
我目前有一些功能:
def someFunction(someSearchString: String, someSet: Set[SomeType]): Set[Blah] =
someSet.collect {
case SomeItem(x, y, z)
if z.getOrElse("null") == someSearchString => // etc.
这可行,但在我看来,必须继续这样做看起来有点混乱,.getOrElse("null")
因为由于我们正在与之交互的代码库,我们在整个课程中都有类似的东西。如果 someSearchString 为“null”且未定义 z,则应将其视为匹配。不幸的是,我们不能将 someSearchString 更改为 null 而不是“null”。
有什么建议么?
解决方案
你的解决方案不错。
这是一种不同的方法,但只有在两种条件的处理方式之间存在一些显着差异时才有用。
def someFunction(someSearchString: String, someSet: Set[SomeType]): Set[Blah] =
someSet.collect {
case SomeItem(x, y, Some(`someSearchString`)) => // etc.
case SomeItem(x, y, None)
if someSearchString == "null" => // etc.
}
推荐阅读
- python - 两个列表之间的值差异
- file-upload - 如何使用终端将文件直接上传和下载到虚拟服务器
- python - 在列表的for循环内修改列表时出现奇怪的输出
- java - 给定大小为 N 的数组中 n 个数字的最小总和,其间有 k 个空格
- c - 在 C 中实现偏执数组
- python-3.x - 如何使用 __add__ 方法在 python 中添加 2 个向量?
- python - 散景图不会在 dropdown.on_change 上更新
- c++ - 为什么子类的子类不能访问其祖先的受保护成员?
- database - 在postgresql中,导入csv文件后,序列号不同步
- javascript - Mongoose 在错误的键中创建文档:根据模式的值顺序