Saya mengerti bahwa ini sepele dengan if, tetapi apakah ada opsi, suka %Satau %sinterpolasi 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
formatindikator untuk ini (gunakan M-x report-emacs-buguntuk itu). Kita semua sudah terbiasa menggunakan concatini, kadang-kadang dalam kombinasi dengan format(untuk konversi lain). Atau memberikan argumen formatseperti (if something "foobar" ""), sesuai dengan formatindikator "%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
rxmakro dalam skenario seperti itu. Minimal pastikan Anda menggunakan yang regexp-quotesesuai), 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 concatmemang lebih masuk akal.
interpolationtag.