gpt4 book ai didi

scope - 内置 FUNCTION 和 FUNCS 插件有什么区别?

转载 作者:行者123 更新时间:2023-12-04 06:49:58 25 4
gpt4 key购买 nike

有一个new implementation of FUNCTION在 Rebol 3 中,默认情况下允许使变量自动绑定(bind)到本地上下文。

FUNCTION 的 VALUE 好像有问题?测试,因为即使在运行时尚未设置变量,它也会返回 TRUE:

foo: function [] [
if value? 'bar [
print [{Before assignment, bar has a value, and it is} bar]
]

bar: 10

if value? 'bar [
print [{After assignment, bar has a value, and it is} bar]
]
]

如果您调用 FOO,您将获得:
Before assignment, bar has a value, and it is none
After assignment, bar has a value, and it is 10

这不是 FUNC 的工作方式(它只说 BAR 在赋值后有一个值)。但是 FUNC 不会自动使变量本地化。

我在 Ladislav Mecir 创建的库中找到了 FUNCS 原语。它有什么不同,是否有相同的缺点?

http://www.fm.vslib.cz/~ladislav/rebol/funcs.r

最佳答案

主要区别在于,FUNCTION 对正文中的集合词进行深度搜索,而 FUNCS 只是对它们进行浅层搜索。 FUNCS 也使用稍微不同的规范。

FUNCS 已经存在了很长一段时间(不过不久前发生了名称更改)。

那个值(value)?函数“问题”与函数的局部变量(即使您使用带有/LOCAL 的 FUNC 显式声明它们)初始化为 NONE 的事实有关。这会导致 VALUE?即使变量“尚未初始化”,函数也会产生 TRUE。

一般来说,我不认为这种“用 NONE 初始化”是“大问题”,尽管这种行为与全局或对象变量的行为不同

关于scope - 内置 FUNCTION 和 FUNCS 插件有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com