匈牙利命名法是一个命名的变量的类型和/或范围作为变量的命名前缀。比如说呢。
int value; // non-Hungarian
int nValue; // the n prefix denotes an integer
double width; // non-Hungarian
double dWidth; // the d prefix denotes a double
匈牙利命名法是在1972发明的查尔斯西蒙尼,一个微软程序员。匈牙利符号最初的想法是编码的可变信息的目的,即应用匈牙利。随着时间的推移,这将改变编码的变量的类型和/或范围的信息,这是被称为系统的匈牙利。
有在是否匈牙利符号在现代编程语言和现代IDE是有用的许多争论。我们相信,优点远远大于它的缺点,但你会发现很多程序员谁不同意。
匈牙利表示法的一个优点是,变量的类型可以从它的名字确定。许多人认为,这是一个过时的优势,因为大多数现代IDE如果你将鼠标悬停在名字告诉你某个变量的类型。然而,考虑下面的代码片段:
1
float applesPerPerson = totalApples / totalPersons;
随意浏览代码,这种说法可能不引起注意。但有一个很好的机会,这是错误的。如果totalapples和totalpersons都是整数,编译器将评估totalapples / totalpersons使用整数除法,造成任何分数前将值分配给applesperperson丢失。因此,如果totalapples =5,和totalpersons = 3,applesperperson将分配1而不是预期的1.66!
然而,如果我们使用匈牙利表示法的变量名: