在 common-lisp 中,类可以有多个构造函数和/或复制构造函数吗?也就是说 - 为了为新向量创建一个类 - “vecr”来表示实数的 3-d 向量,我想定义可以以多种方式初始化的新类:

(vecr 1.2) ==> #(1.2 1.2 1.2)

或者
(vecr 1.2 1.4 3.2) ==> #(1.2 4.3 2.5)

或者
(vecr) ==> #(0.0 0.0 0.0)

最佳答案

我不知道如何评论上面所说的内容:



你可以这样做:

(defun vecr (&optional (x 0.0) (y x) (z y))
  (vector x y z))

关于inheritance - 公共(public) lisp 中的多个构造函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1659413/

10-10 16:17