Old*_*vec 4 f# constructor types arguments named-parameters
请考虑以下代码:
type Test(a) =
member o.A = a
let test = Test(a = cos 5.)
let test2 = Test(a = 5. |> cos) // ERROR
let test3 = Test(a = (5. |> cos))
Run Code Online (Sandbox Code Playgroud)
Test2行给出错误:
类型'bool'不支持任何名为'Cos'的运算符
和
未定义值或构造函数"a"
我理解错误信息,但我想知道它不是一个错误?
认为没关系,因为(|>)的优先级小于(=)表达式
Test(a = 5. |> cos)
Run Code Online (Sandbox Code Playgroud)
被解释为
Test((a = 5.) |> cos)
Run Code Online (Sandbox Code Playgroud)
并且是这种情况错误消息是正确的