隐性编程的一个想法是,如果可以避免的话,不要将参数应用于函数。
如果函数是一等成员,为什么 F# 不允许它编译?
type IAdder =
interface
abstract member Add : int -> int -> int
end
type Adder =
interface IAdder with
member this.Add x y = x + y
type AdderWithInnerAdder(adder:IAdder) =
interface IAdder with
member this.Add = adder.Add
我得到编译错误...
未找到与此覆盖对应的抽象属性
我觉得这应该编译。adder.Add
明确实施IAdder.Add
并且应该是可以接受的。