Saya mengerti bahwa ini sepele dengan if, tetapi apakah ada opsi, suka %S
atau %s
interpolasi nil karena tidak ada string sama sekali?
Contoh:
(format "%?.el" nil) ; ".el"
(format "%?.el" "beginner") ; "beginner.el"
Ya, interpolasi string adalah istilah yang tepat untuk digunakan. Ini adalah variasi pada subjek kutip / makro, di mana string dihasilkan menggunakan templat.
—
wvxvw
Itu pertanyaan yang bagus. Pertimbangkan untuk meminta
—
Drew
format
indikator untuk ini (gunakan M-x report-emacs-bug
untuk itu). Kita semua sudah terbiasa menggunakan concat
ini, kadang-kadang dalam kombinasi dengan format
(untuk konversi lain). Atau memberikan argumen format
seperti (if something "foobar" "")
, sesuai dengan format
indikator "%s"
.
FYI - Saya baru saja mengajukan permintaan peningkatan seperti itu (# 19975), jadi Anda tidak perlu melakukannya. (Seharusnya sudah dilakukan bertahun-tahun yang lalu.)
—
Drew
Kedengarannya seperti cara yang cukup meragukan untuk membangun regexp (mungkin pertimbangkan untuk menggunakan
—
phils
rx
makro dalam skenario seperti itu. Minimal pastikan Anda menggunakan yang regexp-quote
sesuai), tetapi selain itu jika Anda memiliki sejumlah besar string-mungkin dalam DAFTAR Anda bisa selalu melakukan sesuatu seperti (apply 'format "%s%s%s%s" (mapcar (lambda (x) (or x "")) LIST))
. Tentu saja jika string format Anda benar-benar seperti "%s%s%s"
, maka concat
memang lebih masuk akal.
interpolation
tag.