我在elisp
中有以下模式匹配表达式:
(pcase (cadr x)
(S "\u2660")
(D "\u2666")
(C "\u2663")
(H "\u2665")
(_ "error"))
考虑
(setq x (3 'H))
。显然,我们期望输出匹配 "\u2665",但实际上输出匹配到了"\u2660.",即 S。这是怎么回事?我该如何让这个模式匹配语句匹配正确的符号?
感谢您提供的帮助。
C-h f pcase RET
命令时发现了一些内容,其中提到符号可以匹配任何内容 --- 所以这与我发现的行为是一致的。现在有人能够验证吗? - CodeKingPlusPlusS
表示“匹配任何内容并将其绑定到变量S
”。为了实现您想要的功能,您需要引用符号\
S,以指示您想要匹配对象
S`。 - Stefan