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"