无函数定义:RETURN

问题描述 投票:0回答:1

我想使用关键字“return”返回函数的值,但出现运行时错误

我只能成功返回如下值。但是,在第 #3 行 if condition == true 之后,该函数不会“直接结束”。 有人可以提示如何正确使用“return”关键字吗?

function return autolisp
1个回答
0
投票

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))
)
© www.soinside.com 2019 - 2024. All rights reserved.