gpt4 book ai didi

undefined - VALUE是怎么来的?功能工作?

转载 作者:行者123 更新时间:2023-12-01 00:00:33 24 4
gpt4 key购买 nike

我已经将我拥有的一些代码简化为一个小示例,用于测试是否名为 class-name 的变量。有一个赋值给它:

ask-params: function [
config-file [file!]
default-class-name
default-fields
] [
probe value? 'class-name
input
either (value? 'class-name) [
probe class-name
] [
;-- omit code in this branch for now
]
]

ret-block: ask-params %simple-class.params.txt "Person" "First Name, Last Name"

表达式 value? 'class-name在这里返回假。另一方面,如果我用作业填写缺少的分支:
ask-params: function [
config-file [file!]
default-class-name
default-fields
] [
probe value? 'class-name
input
either (value? 'class-name) [
probe class-name
] [
class-name: default-class-name
]
]

ret-block: ask-params %simple-class.params.txt "Person" "First Name, Last Name"

这将为 value? 'class-name 返回 true .但在第二种情况下, class-name: default-class-name甚至还没有被执行。

我认为类名不应该存在于内存中,所以 value? 'class-name应该返回false。为什么是 value?返回 true 吗?

最佳答案

您正在使用 function .这将扫描函数体并为您预先创建局部变量,初始化为 NONE。这就是为什么value? 'class-name变为真(因为 NONE 是变量的合法值,不同于“未设置”的情况)。

如果您使用 func相反,那么两者都会返回 false。

关于undefined - VALUE是怎么来的?功能工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3168226/

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