Lint:`x<> null`;建议考虑使用模式匹配

时间:2015-10-27 18:32:50

标签: f#

Lint of F#power工具建议使用模式匹配来替换以下代码中的x <> nullwhen x <> null)。

let x = obj.method(...) // Call some C# library, may return null
match s with 
| ParseRegex "...." r when x <> null -> Some ( x |> ....) 
| _ -> None
  1. 另一种模式模式(删除when部分)会使代码更麻烦吗?
  2. 为什么x <> null不好?
  3. 如何以更好的方式重写代码?

1 个答案:

答案 0 :(得分:3)

1)是的,您可以一次性匹配两个值:

let x = obj.method(...) // Call some C# library, may return null
match (s, x) with 
| (_, null) -> None
| (ParseRegex "...." r, _) -> Some ( x |> ....) 
| _ -> None

2)解释了一些性能问题here

3)可能是但你应该多描述一下你的代码,比如左边的r用在哪里?