elisp 可以根据下标访问list吗?

如:我有个文件路径 /aaa/bbb/ccc/ddd。

通过(split-string “/aaa/bbb/ccc/ddd” “/”)获取了一个list。

怎么获取最后一个。就像car只获取第一个一样?

可以使用下标么?怎么判断长度?或者是可以反转list让car获取最后一个?

有没有可用的函数?

下标 nth i

最后一个 last

(last '(1 2 3))           ;; => (3)
(car (last '(1 2 3))) ;; => 3

下标用nth,判断长度用length,反转用reverse

请参考:https://www.gnu.org/software/emacs/manual/html_node/elisp/List-Elements.html#List-Elements

1 个赞

除了nth,还可以用eltseq-elt

还可以用cl-first cl-second cl-third……(一直到cl-tenth

还有更邪道的car cadr caddr cadddr……

(file-name-nondirectory "/path/to/file")
;; => "file"

可以,不止列表,数组、字符串也行,用 nth/aref/elt

length

可以,用 nreverse / reverse

(car (last your-list))

学习了,谢谢