3

配列と参照を試していました-私の意図は、配列への参照を作成し、その参照をクロージャー内で使用して配列の特定の要素にアクセスすることです。FSI 試行:

> let dk2 = Array.create 5 0
let dk2ref = ref dk2;;

val dk2 : int [] = [|0; 0; 0; 0; 0|]
val dk2ref : int [] ref = {contents = [|0; 0; 0; 0; 0|];}

> !dk2ref.[1]

stdin(3,2): error FS0039: The field, constructor or member 'Item' is not defined

参照された配列の要素に直接アクセスする方法はありますか? (この場合、dk2ref の 2 番目の要素)?

4

1 に答える 1

6

参照配列が必要な理由がわかりません。

演算子の優先順位表を調べると、.演算子は演算子よりも優先され!ます。したがって、あなたの例は、 indexed properties を実装していない!(dk2ref.[1])ため、エラーの原因として解析されます。'a ref

適切な場所に括弧を追加するだけです:

> (!dk2ref).[1]
val it : int = 0
于 2013-04-25T10:56:13.060 に答える