匈牙利命名法的相反是什么?

11

大多数程序员都知道一种叫做“匈牙利命名法”的东西,它给每个变量添加一个前缀来表示其数据类型,例如:

bIsExciting = false;    // Boolean
strName = "Gonzo";      // String
iNumber = 10;           // Integer
虽然这种表示法已经不太流行了,但我在工作、互联网等地方看到很多数据类型指示符被添加为变量名的“后缀”,例如:

尽管这种表示方法已经不再流行,但我在工作、互联网等地方看到很多数据类型指示符被添加为变量名的"后缀",例如:

NameStr = "Gonzo";        // String
NumberInt = 10;           // Integer
MyRideBike = new Bike();  // Bicycle

当数据类型添加到变量名后面时,这种情况有名称吗?

编辑:为了澄清...是否有一个独特的名称来表示这样的情况?如果没有,对于如何称呼它的一些简洁想法肯定会受到赞赏。


8
“这个有什么名字吗?”——你是指一个礼貌的称呼吗? :-) - Raedwald
2个回答

15
这不是匈牙利命名法的反义词,如果我们按照Stroustrup的定义中"将类型的简称嵌入到变量名中"的方式,那么这就是一种不同形式的匈牙利命名法。如果你想给它起一个名字,就叫它后缀匈牙利命名法吧。(并请告诉你的同事,在大多数情况下它是无用的。)

1
但是,将类型放在名称中的相反方式并不是不将类型放在名称中,而无论是前缀还是后缀都并不重要。这是一种打破了静态和动态类型系统目的的约定。 - Fred Foo
我的观点是,这就是匈牙利命名法,没有理由叫它其他的名字。 - Fred Foo
1
如果你遵循“Stroustrup的定义”,99.99%的人在被要求定义匈牙利命名法时会谈论前缀,这是你所知道的。我的观点是,我正在寻找一个独特而不是晦涩的术语。就像正方形是矩形一样,但它有自己的名称来识别其特殊属性一样。 - A.R.
按照这个逻辑,BASIC需要使用匈牙利命名法...;-) - R.. GitHub STOP HELPING ICE
根据您提供的维基百科页面,“匈牙利命名法中,变量名以一组小写字母开头,这些字母是该变量类型或用途的助记符”。此外,我认为Stroustrup没有谈论放置位置,因为无论类型指示在名称中的何处,他的观点都是适用的。 - Alan Macdonald
显示剩余2条评论

11
我会把这称为反向匈牙利标记法,这与波兰标记法和逆波兰标记法之间的区别是一致的。此外,billmcc在以下链接中的帖子展示了“反向匈牙利标记法”这个术语的实际用法。 你被迫遵循过哪些最奇怪的编码规范?

嗯...我希望有一些更紧凑的东西,比如“希腊记号”之类的。 - A.R.
14
“notation Hungarian”怎么样? - S.L. Barth
5
一次Google搜索显示,“反向匈牙利命名法”已经被广泛使用。它具有良好的平行性,很多极客可以直接理解,无需进一步解释。 - Andy Thomas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接