我想使用关键字“return”返回函数的值,但出现运行时错误
我只能成功返回如下值。但是,在第 #3 行 if condition == true 之后,该函数不会“直接结束”。 有人可以提示如何正确使用“return”关键字吗?
AutoLISP 没有
return
功能。
您需要构建代码,以便将代码的其余部分作为
else
语句的 if
参数的一部分进行计算,例如:
(defun findLastDigitIndex ( str startIdx / char )
(setq char (substr str startIdx 1))
(if (or (< (ascii char) 48) (> (ascii char) 57))
nil
(progn
;; do stuff
)
)
)
但是我可能会编写如下函数:
(defun findLastDigitIndex ( str startIdx / dif )
(setq str (substr str startIdx)
dif (- (strlen str) (length (vl-member-if-not '(lambda ( a ) (< 47 a 58)) (vl-string->list str))))
)
(if (< 0 dif) (+ startIdx dif -1))
)