我對:=
運營商做了一些檢查,我想確保我得到它。SML/NJ - 關於「:=」運營商
讓 -
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
值改變過,這並沒有發生,因此它似乎r1 := !r2 ;
不點r1
到同一地址r2
,只是爲!r1
分配新的內存,並在那裏設置2
值。
我對不對?