Когда object!
создается, как показано ниже:
REBOL []
Room: make object! [
price: copy ""
area: copy ""
total: func [] [
price * 2
]
set 'total2 func [] [
price * 3
]
]
Результат probe Room
:
make object! [
price: ""
area: ""
total: make function! [[][
price * 2
]]
]
Функция total:
печатается, а функция total2
нет. У меня есть сценарий, в котором я сохранил map!
как серию repend [hash Room]
. До того, как я добавил функцию total
, объект Room
возвращал только слова, например
make object! [
price: ""
area: ""
]
После добавления функции total
она также возвращается и изменяет вывод, которого я хочу избежать. Итак, помимо изменения total:
на set 'total
, есть ли способ вернуть только предыдущий вывод?
В книге Rebol/Saphir есть /display
слово или уточнение, но, похоже, оно не работает в моем случае. система Атроникс 3.0.0.4.40:
** Script error: cannot access display in path Room/display
Так что делать? Создать map!
из price
, area
и их значений?