gpt4 book ai didi

ocaml - OCaml 函数中的新构造函数

转载 作者:行者123 更新时间:2023-12-02 09:33:49 25 4
gpt4 key购买 nike

编写此函数时:

let make_new_instance class_name = new class_name

我收到错误“unbound class class_name”,但是,这只是一个函数定义,而不是函数调用。如何延迟“new”,以便在调用函数之前它不会尝试构造对象?

最佳答案

您无法在 OCaml 中执行此操作,它是一种静态类型语言。类必须在 new 处静态指定并且不能用作函数应用程序的参数。 ( new 甚至不是一个函数,而是一种特殊形式 new <classname> 。)

参数化类的一种方法是使用仿函数:

module A = struct
class c = object
method x = 1
end
end

module Make(A : sig class c : object method x : int end end) = struct
let make_new_instance () = new A.c
end

module MakeA = Make(A)

但恐怕这远不是你想要的。

关于ocaml - OCaml 函数中的新构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29693254/

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