我想写一个if语句,它会根据字符串是否为空来做一些事情。例如:
(defun prepend-dot-if-not-empty (user-str)
(interactive "s")
(if (is-empty user-str)
(setq user-str (concat "." user-str)))
(message user-str))在这个人为设计的示例中,我使用(is-empty)代替真正的elisp方法。这样做的正确方法是什么?
谢谢
发布于 2009-06-19 20:08:38
因为在elisp中,字符串是一个整型数组,所以可以使用
(= (length user-str) 0)您还可以使用(string=),它通常更易于阅读
(string= "" user-str)Equal也可以工作,但速度稍慢:
(equal "" user-str)发布于 2018-10-19 00:17:05
从emacs 24.4开始,您可以调用两个不同的函数,这取决于您所说的“空”是什么意思。
(string-empty-p " ")
nil
(string-blank-p " ")
0我在查找要链接的文档时遇到了问题,但emacsredux.com有更多信息。
如果您得到错误Symbol's function definition is void.,请在初始化文件(它是一个用于裁剪和字符串操作的包)中包含(require 'subr-x)。
https://stackoverflow.com/questions/1019778
复制相似问题