Như mã ví dụ của bạn là REBOL 2, bạn có thể sử dụng GET để có được giá trị của từ:
>> get to-word (rejoin [foo "_result_data"])
== [none none none none none]
REBOL 3 xử lý các bối cảnh khác với REBOL 2. Vì vậy, khi tạo một từ mới, bạn sẽ cần xử lý ngữ cảnh của nó một cách rõ ràng nếu không nó sẽ không có ngữ cảnh và bạn sẽ gặp lỗi khi bạn cố gắng đặt nó. Điều này trái ngược với REBOL 2, đặt ngữ cảnh của từ theo mặc định.
Vì vậy, bạn có thể xem xét sử dụng REBOL 3 mã như sau để SET/GET biến động của bạn:
; An object, providing the context for the new variables.
obj: object []
; Name the new variable.
foo: "test1"
var: to-word (rejoin [foo "_result_data"])
; Add a new word to the object, with the same name as the variable.
append obj :var
; Get the word from the object (it is bound to it's context)
bound-var: in obj :var
; You can now set it
set :bound-var now
; And get it.
print ["Value of " :var " is " mold get :bound-var]
; And get a list of your dynamic variables.
print ["My variables:" mold words-of obj]
; Show the object.
?? obj
Chạy này như một sản lượng kịch bản:
Value of test1_result_data is 23-Aug-2013/16:34:43+10:00
My variables: [test1_result_data]
obj: make object! [
test1_result_data: 23-Aug-2013/16:34:43+10:00
]
Một thay thế cho việc sử dụng TRÊN trên có thể đã sử dụng BIND:
bound-var: bind :var obj
Bah. Vì vậy, rõ ràng bây giờ mà tôi nhìn thấy nó. Cảm ơn bạn. :) –