中文命名标识符如何区分类型和变量
发布日期:2021-06-29 15:29:12 浏览次数:3 分类:技术文章

本文共 871 字,大约阅读时间需要 2 分钟。

刚收到的私信问题:

java英文标识符中,是用大小写来区分是类型还是变量的,但使用了中文,就没法这么做了,有什么好的建议么?比如我定义一个状态枚举,再用这个类型定义一个变量,也是叫状态。英文中,类型是State,变量是state。中文下就不行了。

问题感觉比较有代表性,此文作一阶段小结。并不针对枚举类型,而是所有类型/接口。各人命名风格不同,此文仅对本人习惯作一介绍(主要以 Java 代码为例)。

最早开始与同好切磋这个问题是在两年多前的这帖:

重名是否恰当

应该是首先考虑的问题。英文经常仅用大小写区分,并不意味着应该/必须照搬直译。以薛定谔的猫为例:

public class Cat {
enum State {
Dead, Alive } State state;}

假定这里枚举类型 State 的含义是打开箱子观测时的状态,可以用“下场”,“结局”等等更能体现语义的词汇命名枚举类型。

这取决于代码的语义,以及设计。感觉比较难一概而论(如有具体实例欢迎在上面的 issue 跟帖/下面留言/私信继续探讨),但最好在采用其他手段区分之前,先认真考虑一下。因为这往往可以使语义更加明确,开发者也在推敲过程中能对代码目的有个更清晰的概念。

写到这里时,看了一下两年前的 ,突感当时的思维僵化,请见最后增补。这与本文主题并不直接相关,但直译之弊可见一斑。

下面是如果避无可避,或者不愿在推敲上花过多功夫的一些权宜之计:

方法一

使用后缀突出属性。比如 class 后缀“类”,interface 后缀“接口”,enum 后缀“种类”(这个没有实践过)等等。比如这些小项目:

一个好处是,几乎可以杜绝和变量重名的情况出现。但贯彻风格也是个额外负担。

方法二

有时,项目写到一半才发现这个问题,而大多数类名已经写好,不带后缀。又懒得重命名所有类,那么就在这个重命名的地方对变量加前缀,比如的“某词条”:

词条 某词条 = 英汉词典.查词(词条[0]);

这对偶尔出现的情况比较适用。

【先想到这么多】

转载地址:https://codeinchinese.blog.csdn.net/article/details/103936730 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:拿什么拯救你,长英文命名——用中文(也许标点也可以)试试
下一篇:【有彩蛋】Swift 语言官方入门例程中文化(下)

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月17日 13时57分30秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章