我无法在 f 中更改全局变量 a 的值,因为它与局部变量同名:当函数返回时,a 仍然是 1 而不是 12。
a: 1
f: func[a][set 'a a]
>> f 12
== 12
>> a
== 1
如何引用全局变量 a ?set 不应该只引用全局变量吗?我是否必须更改我的局部变量名称才能这样做,或者有没有办法同时保留两个名称?
使用system/words/
路径前缀强制对全局上下文中的单词进行读或写访问:
>> a: 1
>> f: func[a][system/words/a: a]
== func [a][system/words/a: a]
>> f 12
== 12
>> a
== 12
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句