比如我要命名函数/变量或者文件名,那么有哪些特殊字符是不能用的?
我快变成伸手党了……
比如我要命名函数/变量或者文件名,那么有哪些特殊字符是不能用的?
我快变成伸手党了……
1jdskaldas1
这样数字开头的可以, dsahjdka121321
这种包含数字的也可以,纯数字不行。
#'dasn
'dads
#dsa
这种带有 back quote 字符的不行。@ds@
可以,\"
,前面有 \
有特殊意义的字符的可以,|
可以随便用,括号都有特殊意义肯定不行。别的就算你全用中文都没关系,只要记得指定编码就万事 OK。
但是你要真写成上面这样,肯定会被打死。
标准情况只会用到 26 个字母和 -
来连词,偶尔可以用阿拉伯数字。比较宽松的情况用带注音的罗马字符,比如 äêúæ
,是允许的。直接用汉字做变量名很少。有些用户会根据 CL 的标准用 namespace:func-name
这种命名方式来管理“意淫”出来的命名空间。
文件名都是字符串,只要记得转义就可以,具体哪些字符不能用视系统和存储文件格式而定。比如 macOS 有区分大小写和不区分两种。某些少见的系统(VMS之类)只支持5个以下字符之类的。
为啥会被打死? 还有必须得是全小写?因为我看到几乎所有的emacs配置都没人用驼峰之类的大小写混合命名法。
另外我看大部分常量都两端加*是啥意思?
因为这是命名标准。不然各种名称满天飞。
这个是 Commom Lisp 的标准,由于不少 Emacs 用户也是 CL 程序员,所以会沿用过来。
但是这一条不遵守也没关系。因为 Elisp 没有真正的常量
而且是不是为了保持整齐? 因为emacs的内置函数全是"字母 + ‘-’"命名的……
因为写 Emacs 的时候(或者应该说 Lisp 出现的时候?)很多操作系统是不分大小写的(准确说是终端只能显示大写字母),所以没法用驼峰,后来就变成了习惯。
那好吧…… 我自已以后就…… 自建的变量/函数用驼峰,但是也不去包装emacs的内置变量/函数……文件名区分大小写(除了init.el意外……) 总之我问这么个问题就是因为我真的很烦各种文件和文件名里有’-’ 和 '_'这俩符号而已…… 不为啥,就和有些人烦偶像一样………… 反正总之,我这配置还真没到可以拿出手的地步……
如果RMS教主出了什么建议或者强制性规范,我再遵守就是了。 在此之前,我遵守Swift那套东西……
不用教主建议……Emacs 自带的包就是教科书。
我想起了《小王子》里面那个土耳其天文学家,还有那个因为论文没有用 TeX 所以重大发现没受到重视的那个社会学家。
好像都可以,有些特殊(比如纯数字)的需要 Escape(在前面加个 \
)
A symbol name can contain any characters whatever.
中文字符、Emoji 什么的也可以
(defun 猫和老鼠 ()
(let ((🐱 "Tom")
(🐭 "Jerry")
(\123 "123"))
(message "%s and %s, %s" 🐱 🐭 \123)))
(猫和老鼠)
=> "Tom and Jerry, 123"
我的意思是……如果某天不能这么命名了,我就遵守官方的那一套
所以我想如果全用 Emoji 写 Elisp 岂不是很爽。
也可以。 Spacemacs 用的命名标准也是自己定的。