当我尝试将变量与字符串进行比较时,它会给我一个错误。我尝试将其与(= ?a "s")
进行比较。
这是产生错误的完整代码示例:
(deffunction cierto (?a)
(if (= ?a "s")
then
(printout t TRUE crlf)
else
(printout t FALSE crlf)
)
)
错误:
Defining deffunction: cierto
[ARGACCES5] Function = expected argument #2 to be of type integer or float
ERROR:
(deffunction MAIN::cierto
(?a)
(if (= ?a "s")
FALSE
答案 0 :(得分:3)
(deffunction cierto (?a)
(if (eq ?a "s")
then
(printout t TRUE crlf)
else
(printout t FALSE crlf)
)
)
(=)用于比较数字(INTEGER或FLOAT)是否相等。
(eq)用于比较PRIMITIVE值以及类型的比较)
“基本编程指南”(第12节:动作和功能)中的更多信息
替代:
(deffunction cierto2 (?a)
(printout t (eq ?a "s") crlf)
)
你冷也使用SYMBOL而不是STRING“s”。