我正在使用 FsUnit 在 F# 中编写一些单元测试,我注意到属性和类型成员中的 let 语句有一些奇怪的行为,并且想知道是否有人可以解释它?
如果我写这样的测试:
[<Fact>] member test.
``Test that something works correctly`` () =
let x = 1
x + 2 |> should equal 3
我将在 Visual Studio 2012 中的“x + 2”行的第一个字符上收到错误消息:
表达式中出现意外的关键字“让”或“使用”。预期为“in”或其他标记。
使用 'let ... in' 可以解决这个错误,但如果你想使用多个,让它很快变得混乱:
[<Fact>] member test.
``Test that something works correctly`` () =
let x = 1
in x + 2 |> should equal 3
我最终发现将属性放在单独的行上也可以解决错误:
[<Fact>]
member test.
``Test that something works correctly`` () =
let x = 1
x + 2 |> should equal 3
谁能提供任何关于为什么第一个代码片段导致错误但其他两个没有的见解?