首页 > 解决方案 > 如何在班级工作人员中修复我的方法 toString?

问题描述

我在打印类型方面遇到了一些问题。

例如,定义

type experience = Beginner | Experienced;;
class worker e = 
object(self)
val exp : experience = e
method toString = let type_printer = function
                      | Beginner -> "Beginner"
                      | Experienced -> "Experienced" in
                  print_string ("Worker with experience " ^ (type_printer exp))
end;;

所以我想打印我定义的类型,等等。当我调用我的方法时,什么也没发生。我认为问题出在辅助函数中。如何解决?

标签: oopocaml

解决方案


我修正了您代码中的一个错字(print_sting => print_string)。

进行此更改后,您的代码对我有用。

# (* Enter the above code *)
class worker : experience ->
    object val exp : experience method toString : unit end
# let w0 = new worker Beginner;;
val w0 : worker = <obj>
# w0#toString;;
Worker with experience Beginner- : unit = ()

如果您显示与您所看到的方式失败的代码的完整交互,这可能会有所帮助。


推荐阅读