我对操作员做了一些检查:=
,我想确保我做得很好。
让 -
val r1 = ref 1 ; (* !r1 = 1 *)
val r2 = ref 2 ; (* !r2 = 2 *)
val r3 = ref 3 ; (* !r3 = 3 *)
r1 := !r2 ; (* !r1 = 2 *)
r2 := !r3 ; (* !r2 = 3 *)
!r1 ; (* still !r1 = 2 *)
显然我认为这 r2 := !r3 ;
也会导致!r1
value 发生变化,但这并没有发生,所以它似乎r1 := !r2 ;
没有指向r1
相同的地址r2
,而只是为其分配新内存!r1
并在那里设置2
值。
我对吗 ?