【问题标题】:How to put a elisp list inside an elisp hash如何将 elisp 列表放入 elisp 哈希中
【发布时间】:2015-09-11 21:25:24
【问题描述】:

我有这段代码

(setq block_id nil)
(setq myHash (make-hash-table :test 'equal))
(puthash "5" "a" myHash)
(message (gethash "5" myHash))

它在散列中插入一个字符串。并按预期打印出“a” 去做。 但是如何将列表插入到 哈希?我试过了

(setq block_id nil)
(setq myHash (make-hash-table :test 'equal))
(puthash "5" ("list foo" "baa" "baz") myHash)
(message (gethash "5" myHash))

但我从我的 emacs elisp repl 中得到一个 nil。

【问题讨论】:

  • 你的意思是它不工作?请说明您如何确定它是否有效。
  • 编辑问题以提供更多上下文
  • message 的第一个参数应该是格式字符串,而不是列表。
  • 试试(message "%S" (gethash "5" myHash))
  • block_id 和这个有什么关系?

标签: emacs lisp elisp


【解决方案1】:

您有几个错误。您没有引用列表,因此它试图将字符串 "list foo" 作为函数调用。然后你用错误类型的参数调用message

(setq myHash (make-hash-table :test 'equal))
(puthash "5" '("list foo" "baa" "baz") myHash)
(message "%S" (gethash "5" myHash))

【讨论】:

  • 另外,OP 打算改用(list "foo" "baa" "baz"),但标点符号的位置很草率。
  • @ChrisJester-Young 很有可能。他对问题的原始编辑有(list "a" "b" "c")
猜你喜欢
  • 1970-01-01
  • 2012-04-14
  • 1970-01-01
  • 1970-01-01
  • 2018-11-24
  • 1970-01-01
  • 2011-08-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多