2009-10-18 2 views
0
>> example: make object! [ 
[  var1: 10 
[  var2: var1 + 10 
[  var3: now/time 
[  set-time: does [var3: now/time] 
[  calculate: func [value] [ 
[    var1: value 
[    var2: value + 10 
[   ] 
[ ] 
>> 
>> example2: make object! third example 
** Script Error: none is missing its value argument 
** Near: calculate: func [value][ 
    var1: value 
    var2: value + 10 
] 
>> 

Как предотвратить оценку третьего примера?Почему я получаю сообщение об ошибке при попытке создать объект rebol из другого с помощью отражения

ответ

1

Лучший способ, вероятно, использовать construct/with - он создает объект на основе существующего.

Для того, чтобы объект, основанный на примере объекта плюс дополнительное поле:

example2: construct/with [extra-field: 999] example 

или сделать один только с теми же полями

example2: construct/with [] example 
+0

Великий советы я не знаю, что! –

1

Вы также можете воспользоваться для Rebol объектное прототипирование:

example2: make example [] 

или wi й дополнительные поля

example3: make example [  
    var4: now/date 
    set-date: does [var4: now/date] 
] 

или заменяющие полей

example4: make example [ 
    calculate: func [value] [ 
    var1: value 
    var2: value + 20 
    ] 
] 

 Смежные вопросы

  • Нет связанных вопросов^_^