1)您可以在运行时使用cons运算符,它只返回一个新列表而不是改变输入列表.
2)OCaml中的类类型使用"结构"子类型,而不是Java风格的"名义"子类型.推断类型arrayOfDogs
将是"具有bark
类型unit -> unit
(不一定是a dog
)的方法的对象".例如:
# class cat = object method bark = print_endline "meow" end ;; class cat : object method bark : unit end # let c = new cat ;; val c : cat =# c :: arrayOfDogs ;; - : cat list = [ ; ; ; ]
3)问题arrayOfDogs :: c3
是你有错误的方法.类型::
是'a -> 'a list -> 'a list
.要c3
在开头添加,请使用
c3 :: arrayOfDogs
要在最后添加它,请使用"append"运算符 @
arrayOfDogs @ [c3]