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
]
>>

如何防止评估第三个例子?

4

2 回答 2

1

您还可以利用 Rebol 的对象原型:

example2: make example []

或附加字段

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

或替换字段

example4: make example [
  calculate: func [value] [
    var1: value
    var2: value + 20
  ]
]
于 2009-10-20T14:58:05.037 回答
1

最好的方法可能是使用construct/ with——它基于现有对象创建一个对象。

要基于示例对象加上一个额外的字段来制作一个对象:

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

或者用相同的字段制作一个

example2: construct/with [] example
于 2009-10-18T21:37:28.710 回答