【问题标题】:Can I extend built-in array's indexer?我可以扩展内置数组的索引器吗?
【发布时间】:2014-05-04 08:33:08
【问题描述】:

我想将自己的索引器添加到泛型数组类型:

type 'T``[]`` with
    member this.Item(x: string) = 1  // test

但是,这会产生一个编译错误“表达式应为 int 类型,但这里的类型为 string (FS0001)。”

let a = [|1|]
let b = a.["aa"]      // error: FS0001
let c = a.Item("aa")  // this works.

我发现这个question 是 3 年前问的,答案表明这是一个 FSharp 错误。想确认是否仍然如此,或者从那时起规范是否已更新?

【问题讨论】:

标签: f#


【解决方案1】:

Don Syme here 回答了这个问题:

规范需要澄清,数组的索引器不能扩展。

我想说允许他们的建议最好通过http://fslang.uservoice.com 进行跟踪。也就是说,这样做并不简单,因为数组索引器是“内置”在编译器中的,没有 F# 或 IL 元数据表示。

所以 Fsharp 不支持它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2022-12-03
    • 2019-05-31
    • 2018-07-31
    • 1970-01-01
    • 2017-12-11
    相关资源
    最近更新 更多