将 and/or 参数对象扩展为属性
Extending and/or parametric object as attribute
据我现在从 了解到,我必须使用参数对象,因为使用非参数 Logtalk 对象意味着我必须使用断言,即任何 change/set 都会重写整个数组。
那么问题是:
- 如何扩展数组 class..
- 或在主机中将其实例化为 ATTRIBUTE class
点 1
:- object(a2d, instantiates(array)).
:- end_object.
-
Reference to unknown object: array
即使它有效,你如何在内部访问它。
点 2
意味着以某种方式修改术语?
在那个参数对象解决方案中,对象用于封装处理数组表示的谓词,对象参数用于保存表示数组本身的(复合)项.
参数化对象,在这种情况下是一个原型,可以像任何其他原型一样扩展:
:- object(a2d(_Array_), extends(array(_Array_)).
:- end_object.
注意参数对象的标识符是array(_)
(即复合词)。因此,array(_)
和 array
是不同对象的标识符。
据我现在从
那么问题是:
- 如何扩展数组 class..
- 或在主机中将其实例化为 ATTRIBUTE class
点 1
:- object(a2d, instantiates(array)).
:- end_object.
-
Reference to unknown object: array
即使它有效,你如何在内部访问它。
点 2
意味着以某种方式修改术语?
在那个参数对象解决方案中,对象用于封装处理数组表示的谓词,对象参数用于保存表示数组本身的(复合)项.
参数化对象,在这种情况下是一个原型,可以像任何其他原型一样扩展:
:- object(a2d(_Array_), extends(array(_Array_)).
:- end_object.
注意参数对象的标识符是array(_)
(即复合词)。因此,array(_)
和 array
是不同对象的标识符。