我想将自己的索引器添加到通用数组类型:
type 'T``[]`` with
member this.Item(x: string) = 1 // test
Run Code Online (Sandbox Code Playgroud)
但是,这会产生编译错误"表达式应该具有int类型,但这里有类型字符串(FS0001)."
let a = [|1|]
let b = a.["aa"] // error: FS0001
let c = a.Item("aa") // this works.
Run Code Online (Sandbox Code Playgroud)
我发现这个问题是3年前提出的,答案表明这是一个FSharp错误.想确认是否仍然如此,或者说那时规格是否已更新?
我在这里得到了 Don Syme 的回答:
规范需要澄清的是,数组的索引器可能无法扩展。
我想说最好通过http://fslang.uservoice.com跟踪允许它们的建议。也就是说,做到这一点并不简单,因为数组索引器是“内置”到编译器中的,并且没有 F# 或 IL 元数据表示。
所以 Fsharp 不支持它。
归档时间: |
|
查看次数: |
185 次 |
最近记录: |