假设我想根据一个条件设置 bar
和 baz
的值,这在两种情况下都是相同的,比如说 foo
。使用 let
特殊形式,我做这样的事情
(let ((bar (if foo 1 2))
(baz (if foo 3 4)))
... )
虽然上面的程序是正确的,但看起来有点奇怪,因为它检查了两次 foo
的值。在这种情况下,是否可以使用一种惯用的表达方式来避免双重检查?
最佳答案
您不需要在 let 表单本身中设置值。 let 形式创建本地绑定(bind),之后您可以根据需要设置值。
(let (bar baz)
(if foo
(setq bar 1
baz 2)
(setq bar 3
baz 4))
...)
关于lisp - 如何根据 elisp 中的一个条件设置一堆变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40573087/