次のような状況があるとしましょう。
;; Capture whatever the print word pointed to into a variable
outer-print: :print
foo: context [
;; within foo, override print and implement in terms of outer-print
print: func [value] [
outer-print "About to print"
outer-print value
outer-print "Done printing"
]
]
これを行うことができます。または、外部コンテキストから必要なものが複数ある場合は、明示的にキャプチャできます。
;; Capture current context into something called outer
outer: self
foo: context [
;; within foo, override print and implement in terms of outer/print
print: func [value] [
outer/print "About to print"
outer/print value
outer/print "Done printing"
]
]
これは正しいイディオムですか、それとももっと良い方法はありますか? これにより、期待した結果が得られない状況はありますか?