3.9 Emacs Lisp 中的真值和假值
在 if
表达式中,有一个重要的关于真值测试的方面。到目前为止,我们已经谈到“true”和“false”作为谓词的值,好像它们是新种类的 Emacs Lisp 对象一样。实际上,“false”只是我们的老朋友 nil
。任何其他东西——无论什么——都是“true”。
对真值进行测试的表达式在解释时会被视为 真,如果它的求值结果不是 nil
。换句话说,如果返回的值是一个数字,比如 47,一个字符串,比如 "hello"
,或者一个符号(除了 nil
之外的任何符号),或者一个列表(只要它不是空的),甚至是一个缓冲区,测试的结果就被认为是真的!