将 and/or 参数对象扩展为属性

Extending and/or parametric object as attribute

据我现在从 了解到,我必须使用参数对象,因为使用非参数 Logtalk 对象意味着我必须使用断言,即任何 change/set 都会重写整个数组。

那么问题是:

点 1

:- object(a2d, instantiates(array)).

:- end_object.

即使它有效,你如何在内部访问它。

点 2

意味着以某种方式修改术语?

在那个参数对象解决方案中,对象用于封装处理数组表示的谓词,对象参数用于保存表示数组本身的(复合)项.

参数化对象,在这种情况下是一个原型,可以像任何其他原型一样扩展

:- object(a2d(_Array_), extends(array(_Array_)).

:- end_object.

注意参数对象的标识符是array(_)(即复合词)。因此,array(_)array 是不同对象的标识符。