我有一个基于http post模板的azure函数。我将json从1 prop扩展为3.
match isNull versionJ, isNull customerIdJ, isNull stationIdJ with
检查所有三个空值的最佳方法是什么?使用tulple?
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/css/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.formLogin()
.loginPage("/login")
.loginProcessingUrl("/login")
.and()
.authorizeRequests()
.antMatchers(HttpMethod.GET, "/login", "/error").permitAll()
.anyRequest().authenticated(); //all other pages require users to be authenticated
}
答案 0 :(得分:2)
在这种情况下,我认为使用简单的if是清洁剂解决方案,
如果您已将isNull
定义为:
let inline isNull value = (value = null)
然后就这样做:
if isNull versionJ && isNull customerIdJ && isNull stationIdJ then
// your code
答案 1 :(得分:2)
这取决于您想要检查的内容。 如果要查看至少有1个null,则可以执行以下操作:
let allAreNotNull = [versionJ; customerIdJ; stationIdJ]
|> List.map (not << isNull)
|> List.fold (&&) true
如果要检查所有这些是否为空,则可以执行以下操作:
let allAreNull = [versionJ; customerIdJ; stationIdJ]
|> List.map isNull
|> List.fold (&&) true
<强>更新强>
您也可以将其替换为List.forall
:
[versionJ; customerIdJ; stationIdJ]
|> List.forall (not << isNull)
[versionJ; customerIdJ; stationIdJ]
|> List.forall isNull
答案 2 :(得分:2)
另一种方法受到申请人的启发,如果所有元素createRecord
都适用(<>) null
。
let createRecord v c s = v, c, s
let inline ap v f =
match f, v with
| _ , null
| None , _ -> None
| Some f, v -> f v |> Some
let v =
Some createRecord
|> ap json.["version"]
|> ap json.["customerId"]
|> ap json.["stationId"]