gpt4 book ai didi

emacs - 如何通过键名检索 cons 单元格的值?

转载 作者:行者123 更新时间:2023-12-03 22:58:29 25 4
gpt4 key购买 nike

假设我有一个像这样的 cons 单元格列表:

(setq foo '(("a" . 1) ("b" . 2) ("c" . 3)))

我想通过“键名”检索特定 cons 单元格的值。有没有一个功能可以让我这样做?

例如。
(get-by-key "a" foo) ;; => 1

或者类似的东西。提前致谢!

最佳答案

这种列表称为关联列表,或简称为 alist。形式上,关联列表是键及其关联值的 conses 列表。
assoc功能就是你要找的。它接受一个键和一个 alist 作为它的参数,并根据 equal 返回 alist 中键的第一个关联。 :

ELISP> (setq foo '(("a" . 1) ("b" . 2) ("c" . 3)))
(("a" . 1)
("b" . 2)
("c" . 3))

ELISP> (assoc "a" foo)
("a" . 1)

ELISP> (cdr (assoc "a" foo))
1
assoc-string功能类似于 assoc函数,但特定于键为字符串的关联列表。除了键和 alist 之外,它还可以采用另一个可选参数,使键比较不区分大小写:
ELISP> (assoc-string "a" foo)
("a" . 1)

ELISP> (assoc-string "A" foo)
nil

ELISP> (assoc-string "A" foo t)
("a" . 1)

关联列表相关功能的完整列表请引用 GNU Emacs Lisp Reference Manual .

关于emacs - 如何通过键名检索 cons 单元格的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12754687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com