jak wasz przykład kod jest REBOL 2, można użyć GET, aby uzyskać wartość słowo:
>> get to-word (rejoin [foo "_result_data"])
== [none none none none none]
REBOL 3 obsługuje konteksty inaczej niż REBOL 2. Dlatego podczas tworzenia nowego słowa trzeba będzie obsługiwać jego kontekst jawnie, w przeciwnym razie nie będzie miał kontekstu, a podczas próby ustawienia pojawi się błąd. Jest to przeciwieństwo REBOLU 2, które domyślnie ustawia kontekst słowa.
Więc można rozważyć użycie REBOL Kod 3 jak poniżej, aby ustawić/zdobycie zmienne dynamiczne:
; 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
Bieganie to jako plony Scenariusz:
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
]
alternatywa do stosowania podano mogło być używanie BIND:
bound-var: bind :var obj
Bah. Tak oczywiste, że teraz to widzę. Dziękuję Ci. :) –