例如,拿这段代码:
var person = new Person();
或者你的Pythonistas:
person = Person()
我不断被告知这有多糟糕,但还没有看到这两行代码不道德的例子.对我来说,人是一个人,并试图给它另一个名字是浪费时间.我想在语法突出显示之前的几天,这将是一个大问题.但是现在,除了变量名之外,告诉类型名称很容易.哎呀,在SO上看到差异很容易.
还是有什么我想念的?如果是这样,如果您能提供导致问题的代码示例,将会很有帮助.
那些告诉你这个坏的原因是什么?我一直这样做.这是命名单个变量类型的最简单,最富有表现力的方法.如果您需要两个Person
对象,那么您可以person
使用有意义的形容词作为前缀
fastPerson slowPerson
否则只是
person
对我很好.
我在方法签名中经常使用这种模式.如果我无法提供备用描述性名称,那么恕我直言,这没有任何问题.
如果你有两种类型的人和人那么这是非常错误的.
我一直用它来进行临时对象引用.我会像原始数据类型的瘟疫一样避免它.
Person person = new Person(); // okay int Int = 42; // pure evil
如果有人说这是邪恶的,请问他们这是否更好:
var abc = new Person();
如果Person是上下文中的普通人,那么"person"就是一个非常好的名字.当然,如果Person在代码中具有特定角色,那么最好使用该角色来命名她.
我想我会因为这样说而被投票,但......
刚刚经历了一个世纪见证了史诗般的谋杀和贪婪,如果我们能做的最不道德的事情就是命名变量,那么程序员真的很幸运.
我认为这不一定是"坏",但很明显,如果你有资格给它更多的背景,比如它是什么样的人(你只与一个可能是许多可能的人打交道),然后别人选择它起来可能会更好理解.
杰森 - 我不确定是谁告诉你这很糟糕.许多作者使用它作为表达类(大写)的实例(小写)的标准方式.
我经常使用它,因为我发现低级变量实际上与我通信不仅是这是一个实例而且是类的名称.
除非有人有相反的坚定论据,否则我肯定会继续这样做.
它被认为是坏的原因是如果你将来需要2个人,你可以得到看起来像的代码.
人人=新人();
Person person2 = new Person();
那将是接近"坏".但是,在这种情况下,您应该重构您的原始人,以便区分这两者.
至于您的示例,变量名称"person"是对象"Person"的完美描述性名称.因此,无论如何都没有错.