ルールの LHS にはR_blup
、
(test (>= ?s2 2))
つまり、 が?s2
2 以上かどうかをチェックします。?s2
は という名前のインスタンス スロットに対応しますs2
。
残念ながら、エラーが発生します
Function >= expected argument #1 to be of type integer or float
(test ...
問題は、引数 #1 を設定s2
する前、つまり整数値または浮動小数点値を設定する前にコードが実行されることです。s2
別のルールによってトリガーされる python-call 内で整数に設定することになっていますR_blah
。
エラーは、別のルールに属する別の python-call の途中でトリガーされますR_xyz
。この python-call は、 を介してインスタンスを変更しますclips_instance.Slots["slot_name"] = some_value
。
これは通常どのように処理されますか?あまり好きではない 3 つの解決策があります。
- のデフォルト (整数) 値を設定します
s2
。 - 最初
(test ...
にチェックするように を変更します。nil
- 待機する別のチェック/ルールを
s2
追加nil
する
エラーを試す/除外する/渡すことは可能ですか?