作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一些模式匹配代码,我们希望编译器警告我们匹配不是详尽的,但我们没有得到。是否存在无法进行详尽检查的情况?
例如我们的例子(使用 scalactic Good+Bad):
(maybeModelIdOrFailure, maybeMake) match {
case (Some(Good(modelId)), Some(makeId)) if modelId >= 0 && taxonomyService.isValidModel(makeId, modelId) =>
Good(Some(MakeModelParameters(makeId, Some(modelId), modelLineId = None, index)))
case (Some(Good(modelLineId)), Some(makeId)) if modelLineId < 0 && taxonomyService.isValidModelLine(makeId, -1 * modelLineId) =>
Good(Some(MakeModelParameters(makeId, modelId = None, modelLineId = Some(-1 * modelLineId), index)))
case (Some(Good(modelOrModelLineId)), Some(makeId)) =>
Bad(One(IdNotFound(modelIdKeyName, modelOrModelLineId)))
case (Some(Good(modelId)), None) if modelId >= 0 =>
Bad(One(IdInvalid(modelIdKeyName, "Model Id without Make Id")))
case (Some(Good(modelLineId)), None) if modelLineId < 0 =>
Bad(One(IdInvalid(modelIdKeyName, "Model Line Id without Make Id")))
case (None, Some(makeId)) => Good(Some(MakeModelParameters(makeId, None, None, index)))
// case (None, None) => Good(None)
// case (Some(Bad(invalidParams)), _) => Bad(One(invalidParams))
}
最佳答案
来自 Jason Zaugg's comment on SI-9232似乎守卫目前只是禁用详尽检查(或几乎如此)。如果这是原因,移动分支内的保护条件(例如 case (Some(Good(modelId)), None) => if (modelId >= 0) ... else ...
)应该会有所帮助。其他相关问题:https://issues.scala-lang.org/browse/SI-5365 , https://issues.scala-lang.org/browse/SI-7631 .
关于scala - Scala 2.11 模式匹配的详尽检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34022160/
我有一个实用函数来在引用中存储不断变化的值: export function useRefOf(value: T) { const ref = useRef(value); useEffect
我是一名优秀的程序员,十分优秀!