인덱서가 구현 된 유형 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 #에서? 감사!
멋진 캐치, 토마스 배입니다 INT입니다! –
고마워요 토마스! FSharp 버그 보고서에 이메일을 보냈습니다. –