3

考虑到 ref 运算符,我很难理解它的应用和以下说明的含义:

1.

在这个定义中,我在定义什么?

 - val ref x=ref 9;

 val x = 9 : int

2.

我在用 ref x:= ref 12 做什么?

 - val x= ref 8;

 val x = ref 8 : int ref

 - ref x := ref 12; 

 val it = () : unit

 - x;

 val it = ref 8 : int ref
4

2 回答 2

7

val ref x = ref 9定义x9- 就像你写的一样val x = 9。这是因为ref它是一个构造函数,所以它是模式匹配值与绑定到 9ref 9的模式。当然,像这样写而不是仅仅写是没有意义的。ref xxval x = 9

当您编写时ref x := ref 12,您创建了一个新ref的(类型int ref ref)来引用x. 然后,您立即将该 new 更改ref为引用ref 12而不是x. 由于ref您创建的新内容永远不会存储在您可能访问的任何地方,因此这不会产生明显的影响。

于 2013-04-21T18:31:18.463 回答
0

@newacct, @sepp2k 我看到这是几年前的事了,但我发现讨论很有用,并希望贡献以下输出Standard ML of New Jersey v110.79 [built: Tue Aug 8 16:57:33 2017]

- val ref x = ref 9;
val x = 9 : int
于 2020-05-28T17:06:28.947 回答