从(Emacs)Lisp中的字符串名称调用函数

DCL*_*oij 3 lisp emacs elisp

给定一个由各种串联构建的字符串"my-func-name",我想调用相关的函数.

由于funcall期望一个函数对象作为参数,我想知道是否有一种方法可以通过其名称检索函数引用,因此我可以执行它.

提示:我目前正在使用Emacs Lisp方言.

非常感谢你

奖励:示例虚拟代码

(defun my-func-name ()
  "My function."
  (message "Hello"))

(setq mfname "my-func-name")

;; Not working, obviously
;; (funcall mfname)
Run Code Online (Sandbox Code Playgroud)

leg*_*cia 9

获取该名称的符号intern,然后funcall:

(funcall (intern "my-func-name"))
Run Code Online (Sandbox Code Playgroud)