common-lisp RETURN-FROM,从块或功能退出
示例
功能总是在身体周围建立障碍。该块的名称与函数名称相同。这意味着您可以RETURN-FROM将此块名称与函数一起使用并返回值。
您应该避免尽可能早地返回。
(defun foobar (x y)
(when (oddp x)
(format t "X (~d) is odd. Returning immediately.~%" x)
(return-from foobar "return value"))
(format t "X: ~s~@
Y: ~s~%"
x y))
(foobar 10 20)
; X: 10
; Y: 20
;=> NIL
(foobar 9 20)
; X (9) is odd. Returning immediately.
;=> "return value"