ocaml对象教程包含这段代码,但没有解释它。
# class c0 = object method m = {< >} method n = 0 end;;
class c0 : object ('a) method m : 'a method n : int end
{&lt; &gt;}意味着它在哪里记录?
答案 0 :(得分:2)
Section 3.1.3 of the OCaml manual中有一个非正式的定义。它说:
覆盖构造{&lt; ...&gt;}返回“self”的副本(即当前对象),可能会更改某些实例变量的值。
Section 6.9.2中给出了更正式的定义。
表达式{< >}
不包含对实例变量的更改,因此它只返回“self”的副本,即当前对象。