type Foo(...) =
...
let a = Array.create 10 (new Foo())
let sum = Array.sum a
Run Code Online (Sandbox Code Playgroud)
Tom*_*cek 10
您需要添加sum函数使用的一些成员来进行计算:
type Foo(value:int) =
member x.Value = value
// Two members that are needed by 'Array.sum'
static member (+) (a:Foo, b:Foo) = Foo(a.Value + b.Value)
static member Zero = Foo(0)
// Not needed for 'Array.sum', but allows 'Array.average'
static member DivideByInt(a:Foo, n:int) = Foo(a.Value / n)
Run Code Online (Sandbox Code Playgroud)
该sum函数以返回的值开始,Zero然后添加Foo使用重载+运算符的值(average然后将结果除以整数):
let a = Array.init 10 (fun n -> Foo(n))
let sum = Array.sum a
sum.Value // Returns 45
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
267 次 |
| 最近记录: |