3.9 Emacs Lisp 中的真与假

if 表达式中的真假判断有一个重要特点。 到目前为止,我们把谓词返回的 “真(true)” 和 “假(false)” 当作一种新的 Emacs Lisp 对象。 实际上, “假(false)”就是我们熟悉的 nil。除此之外的任何值—— 任何东西 — 都是 “真(true)”。

一个用于判断真假的表达式,只要求值结果不是 nil, 就会被解释为真(true)。换句话说,只要测试返回的值是数字(如 47)、 字符串(如 "hello")、符号(nil 除外,如 flowers)、 列表(只要非空),甚至是一个缓冲区,都会被视为真。