我已将我拥有的一些代码简化为一个小示例,用于测试调用的变量是否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
在这里返回 false。另一方面,如果我用作业填写缺失的分支:
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
. 但在第二种情况下,class-name: default-class-name
甚至还没有执行。
我认为类名不应该存在于内存中,所以value? 'class-name
应该返回false。为什么要value?
返回 true 呢?