可变性函数输出

问题描述 投票:0回答:1
type dot = {mutable x:int; mutable y:int} 

let f (dot1:dot) (dot2:dot) : int = 

dot1.x <- 12;
dot2.x <- 26;
dot1.x

我不确定这将评估什么。我假设它将始终评估为12,但是答案键说它“有时”仅评估为12。我想这与dot1和dot2是否为别名有关,但是考虑到我们仅修改dot1并访问dot1的x字段,我仍然不明白为什么这很重要。

type dot = {mutable x:int;可变的y:int}让f(dot1:dot)(dot2:dot):int = dot1.x

ocaml record mutable
1个回答
0
投票

尝试运行


0
投票

这是一个简单的示例,当返回的值将是26而不是12

© www.soinside.com 2019 - 2024. All rights reserved.