使用零点的计算表达式

Pau*_*icz 3 f# computation-expression

使用计算表达式时,第一个定义有效,但第二个定义不适用于Zero.

这有什么区别:

member o.Zero() = 3
Run Code Online (Sandbox Code Playgroud)

还有这个:

member o.Zero = fun() -> 3
Run Code Online (Sandbox Code Playgroud)

第一个评估到unit -> int第二个评估(unit -> int).有什么不同?

pad*_*pad 5

如果它们是有界限的,那就没有区别了.但是,在类定义中,第一个o.Zero是方法,第二个o.Zero是属性.

计算表达式需要一个名为Zero; 这就是为什么当您提供具有相同名称的属性时它不起作用的原因.