6
如果我想定义一个类似于标准偏差的浮点数组的扩展方法,对于float[]
类型的数组模块或扩展使用模块扩展会更好吗? 喜欢:F#模块扩展与类型扩展
module Array =
let std (arr: float[]) = ...
或
type float ``[]`` with
member this.std = ...
如果我做类型的扩展名,因为后者,将在std
只计算一次或每次使用时间呢?
而且,后者的正确格式是什么,实际上type float ``[]`` with
不是comile ...谢谢。
@kvb:你知道_why_他们在F#中的工作方式不同吗? – Daniel 2011-05-20 14:15:32
@丹尼尔 - 我不知道。但是,我认为F#的行为确实有道理 - 为什么不应该键入扩展镜像类型定义?构造泛型类型的实例上的方法依赖于它的类型参数似乎并不奇怪吗? – kvb 2011-05-20 14:21:14
@kvb:是的,但它似乎对通用接口非常有意义。例如'string Join(这个IEnumerable部分)'似乎是合理的。 –
Daniel
2011-05-20 14:36:07