我有这个问题,我不明白它来自哪里。 代码:上课方法中的不受限制的价值
class applicationFrameworksManager =
object(this)
val mutable frameworks = []
method add_framework name =()(* if not (List.mem name frameworks) then frameworks <- List.append frameworks [name]; *)
method get_frameworks = frameworks
末;;
和错误:
Error: Some type variables are unbound in this type:
class applicationFrameworksManager :
object
val mutable frameworks : 'a list
method add_framework : 'b -> unit
method get_frameworks : 'a list
end
The method add_framework has type 'b -> unit where 'b is unbound
化妆:* [genobjc.cmx]错误2
任何人可以帮助?我可以约束什么?谢谢。我会为这个类添加很多字符串,我只想在最后得到唯一的字符串。
这与类型错误无关(Jeffrey Scofield的答案非常好),但如果您的目标是处理大量的唯一字符串,您可能更喜欢使用一组字符串(http:// caml。 inria.fr/pub/docs/manual-ocaml/libref/Set.html)而不是列表。另外,即使使用列表,'name :: frameworks'比'List.append frameworks [name]'效率更高(在后者中,每次添加新的'name'时,都会遍历'frameworks' ,在前者中你只需在'frameworks'前面添加'name') – Virgile
这也没有什么可以直接看到你的问题,但是如果你是OCaml的初学者,我建议你不要直接跳到对象面向对象的编程风格,你已经知道了。 OCaml是一种完全不同的语言,使用不同的技术更方便。如果你的设置不使用面向对象的设施,你应该尽量避免使用它们,而应该熟悉更多的“功能”设计程序的方式。 – gasche
感谢提示,我可以迭代设置?我需要在某个时候从那里获得它们。我选择管理班级内的所有内容,并且不会在代码中传播所有内容,因为我有更多的方法和操作,比我在这里发布的内容更多。 –