次のコードがあります。
let p = print_string("finished\n");;
let x0 = ref 0;;
class point =
object
val mutable x = incr x0; !x0
method get_x = x
method move d = x <- x + d
end
;;
print_int(new point#get_x);;
p;;
print_int(new point#get_x);;
p;;
出力が次の理由を理解できません。
finished
12
私の期待は実際には次のようなものです:
1
finished
2
finished
このコードを実行する正しい順序は誰でもわかりますか?