インデクサーを実装したタイプAがあるとします。タイプAはライブラリです。今、私はそれのインデクサーを拡張したいと思います。ここでは、インデクサーに浮動小数点数を追加します。既存のクラスのインデクサーを拡張する
私は次のコードを働いた:
type A(a:int array) =
member this.Item
with get(x) = a.[x]
and set(x) value = a.[x] <- value
type A with
member m.Item with
get(x:float) = m.[x |> int]
and set(x:float) v = m.[x |> int] <- v
をしかし、それは働いていないようです:最後の行については
let a = A([| 1;2;3 |])
a.[1]
a.[1] <- 10
a.[1.0]
を、私が取得:
Script1.fsx(243,4): error FS0001: This expression was expected to have type
int
but here has type
float
が可能インデクサーを拡張してF#で?ありがとう!
ナイスキャッチ、トマスを倍増、のfloat32です! –
おかげさまでトマース!私はFSharpバグレポートに電子メールを送った。 –