呼び出された変数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"
これは に対して true を返しますvalue? 'class-name
。しかし、この 2 番目のケースでclass-name: default-class-name
は、まだ実行されていません。
value? 'class-name
class-name はメモリに存在してはならないので、 false を返す必要があると思います。value?
代わりに true を返すのはなぜですか?