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)你能否建議一些例子和最佳實踐從實例中檢索一個插槽值?
謝謝 尼克