gpt4 book ai didi

oop - OCaml 中对象内的对象

转载 作者:行者123 更新时间:2023-12-04 17:54:51 25 4
gpt4 key购买 nike

我想弄清楚如何用其他对象参数化 OCaml 对象。具体来说,我希望能够创建一个 link包含转发 node 的对象对象和向后 node对象,我希望能够通过说以下内容来创建链接:

let link1 = new link node_behind node_ahead;;

最佳答案

对象是 OCaml 中的普通表达式,因此您可以将它们作为函数和类构造函数参数传递。如需更深入的解释,请查看 related section在 OCaml 手册中。

因此,例如,您可以编写:

class node (name : string) = object
method name = name
end

class link (previous : node) (next : node) = object
method previous = previous
method next = next
end

let () =
let n1 = new node "n1" in
let n2 = new node "n2" in
let l = new link n1 n2 in
Printf.printf "'%s' -> '%s'\n" l#previous#name l#next#name

关于oop - OCaml 中对象内的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10112304/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com