0
我需要从可能包含其他实例的实例中检索插槽值(传递插槽名称)。 实施例:获取对象的插槽值
(defclass MAINCONTROLLER (is-a USER)
(slot uuid
(type STRING))
(slot param
(type INSTANCE))
(multislot zones
(type INSTANCE))
(slot state
(allowed-values a b c))
(slot pump
(allowed-values on off)))
(make-instance mainController of MAINCONTROLLER
(uuid "myController123")
(param [param-mainController])
(zones [zone1] [zone2])
(state a)
(pump on))
插槽名为 “参数” 中包含称为[PARAM-mainController]一个实例。
CLIPS文档建议使用带put参数的send命令检索插槽值。 我试图使用通用函数只通过传递slotname来检索参数。
(defmessage-handler USER get-param (?param-name)
(printout t "Slot value: " ?self:?param-name crlf))
但执行它,我得到:
(发[mainController]得到-PARAM状态)
[MSGPASS2]在功能上不发送这样的实例mainController。
FALSE
一些问题:
1)我总是需要定义每个插槽我需要阅读withsend命令(创建,访问读取)?
2)你能否建议一些例子和最佳实践从实例中检索一个插槽值?
谢谢 尼克