刚打开 golang 教程,看下指针部分,里面有一段是:
ptr := &v // v 的类型为 T
其中 v 代表被取地址的变量,变量 v 的地址使用变量 ptr 进行接收,ptr 的类型为 *T,称做 T 的指针类型,*代表指针。
其中一个变量名 ptr,让我费解了下,因为如果不搞清楚变量名的意思,代码是很难读下去的。
好在这个缩写不太难,它表示 pointer,但在中文教程中第一次见这个词,又没有解释,新手要花很大的精力去搞懂变量名的意义。
有没有一些网站,供查询一些变量名缩写的全称的?
runze
(润泽)
2
2 Likes
Huhu
3
我的变量名越写越长,就差拿变量名当注释用了(现在注释写的也可长了),反正我希望几个月以后自己拿起自己的代码能够比较容易的读懂。
反正有必要的话,还可以让程序自己去压缩代码
比如 str 通常是指 string 但是如果你遇到一个把 structure 也缩写成 str 的就没辙了.
关键要看代码. 变量本身就是用户自己起的名字.
自己写的话, 尽量不要太短, 除非变量在很短的代码段内使用.
其实中文变量挺好的, 很多人不用的主要原因是需要切换输入法.
当然了, 的确也有人嘲笑这种做法.
以前不用中文变量是编程语言或者开发平台支持度或者兼容性不好. 但是现在的话, 在易读性上, 中文变量远超其他做法.
3 Likes
Huhu
8
虽然我自己不会那样去写,但是我个人是完全接受中文变量名的,utf-8 让各种语言平等相处……哎,这么说可以用小众语言设置变量名变相起到混淆的作用
这话题完全带偏了。我提这个问题的原因是,我要去读懂别人的代码,读懂其他人写的开源项目的代码,不可避免的会碰到许多非常通用、但新手不懂的英文缩写,所以才要查询。
不是带偏了. 是之前回答过了. 如果你是要看英文缩写, 你首先要熟悉 某个语言的 关键字.
剩下的就是英语的缩写规则了.
没有什么可查询的.
liu
(=_=)
11
我见过有拿汉语拼音缩写做变量名的,这个完全没办法理解
runze
(润泽)
13
就是一个普通的、收集缩略词的网站,跟urban dictionary、小鸡词典差不多,只不过专注于缩略词。
qinshou
(秦寿)
16
这个不是变量名的问题,而是英语的单词缩写习惯问题。当然,相关的词汇量你得先有。英文单词简写,一般是去掉原音发音的字母和字母组合,保留主要辅音音节,有些,则是简单的字头。凡是没什么特殊含义的变量名,基本上都是临时变量,根本不需要去在意他们的含义。跟考英语做阅读理解的人名似的。
runze
(润泽)
21
现代语言理应支持中文
至于用不用,和有没有是两码事,这些语言支持unicode变量名,也不仅仅是为了满足中文用户的需求,实际上大部分非英语用户都有这种需求。
1 Like
阻碍中文编程发展的,主要是编码规范不统一的问题。
国内 Windows 系统是强制 gbk 编码(国家强制要求),国际通用是 UTF-8 编码。Linux 和 MacOS 是 UTF-8 编码。
即使国家取消强制 GBK 编码,Windows 也会因沉重的历史兼容性包袱不能轻易改成 UTF-8,因为那样会使许多旧软件出现问题。
用 utf-8 编码编写的 c/c++ 源码,进行编译后,在 Linux 控制台输出正常。但同一份源码,在国内 Windows 编译后,控制台的输出中文就是乱码。
如果用 GBK 编码保存源码,在国内 win 输出可以正常,但同一份源码在 Linux 下编译后, Linux 控制台输出中文就是乱码。
总之,由于两种编码冲突,输出中文乱码现象很严重,难以保证同一份源代码在所有系统上都输出正确的中文。
一些文件元数据存储文字也跟随 win 系统,windows 使用 gbk,例如 CSV 的默认格式就是 GBK,如果读取 UTF-8 的 CSV 文件,就会有乱码。
在国内 Windows 系统上为照片修改元数据、标签,就是以 GBK 储存,许多国际软件(例如 exiftool exiv2)都只做了 utf-8 支持,读取的结果就出现了乱码。
另外,有的软件读取目录,使用 UTF-8 编码,但 Windows 给它传递 GBK 编码,结果就找不到文件。典型:pngquant
如果在源文件名中使用了中文,GCC 的 C++ 编译器也无法正常工作。
1 Like