如何重载。[] F#数组根据任意索引数组切片数组?
例如:
let x = [|1..10|];
let indx = [|4;1|];
虽然
[| for i in indx ->x.[i]|]
会起作用,直接使用x.[indx]
会更好。
答案 0 :(得分:6)
您始终可以编写F#扩展方法来接近语法
let a = [| 1..10 |]
let idx = [|4;1|]
type 'T ``[]`` with //'
member this.Slice(indices:int array) =
[| for i in indices -> this.[i] |]
printfn "%A" (a.Slice idx)
但由于数组已经有一个索引器,因此没有出现过载/更改它的方法。