【发布时间】:2021-02-17 04:12:52
【问题描述】:
使用 FsToolkit.ErrorHandling 并查看此示例时:
testCase "Happy Path Result" <| fun () ->
let actual : Validation<int, string> = validation {
let! a = Ok 3
and! b = Ok 2
and! c = Ok 1
return a + b - c
}
和!是什么意思?看起来 let! 被映射到 Result.bind,但我没有看到 let! 和 and! 之间的不同行为p>
据我所见,似乎用 let! 替换 and! 保持相同的行为。
我刚刚开始涉足计算表达式,事情开始变得有意义,虽然我真的不明白为什么我们在 F# 关键字(如 let)和实际函数(如 bind)之间有不同的命名法,所以它添加了一层混乱。所以这个问题的答案可能很明显:)
【问题讨论】: