关于在一个内衬中进行多个变量初始化的普遍争论是:
考虑例如int i,j = 1; 这可能会导致某些人错误地认为两个变量都已初始化
我们可以争辩说,某人应该足够了解他的语言的语法,不要对此有所误解。另一个说法可能是,随着开发人员学习了太多的语言,我们可能会在语言之间的特殊性之间犯错误。
但是对于这种非常特殊的情况,我想知道以下内容是否甚至存在一种语法i,j = 1初始化两个变量的语言?
如果不是,则该参数不适用。
2
如果您的语言是理智的,则潜在的混淆是无害的,因为访问未初始化的变量会触发编译器错误。
—
CodesInChaos
@CodesInChaos您是在说C不是理智的吗?
—
Baldrickk
仅仅因为一种语言允许某件事并不意味着您就不会给人类造成不必要的痛苦。该代码唯一需要的地方是在旨在惩罚那些没有记住语言规范的人的测验中。我总是无法回答这类问题。eh
—
candied_orange
在Visual Basic 6中
—
埃里克·利珀特
Dim Apple, Orange, Pear as Fruit
是合法声明。假设您不了解VB。您的第一印象Apple
是类型Fruit
吗?它不是。请记住,不是由该语言专家组成的人们通常会阅读语言。如果您是专家,请明智地使用该语言,甚至向非专家清楚地传达您的意图。我从不使用任何语言进行多次初始化。
同样:考虑
—
埃里克·利珀特
var x = 1, y = 1.5;
这是否与相同int x = 1; double y = 1.5;
或相同double x = 1, y = 1.5;
?当我们添加var
到C#3.0中时,我进行了一次调查,发现大约一半的人认为第一个“明显”正确,而另一半认为另一个“明显”正确,因此我们将其定为非法。误导整个人口一半的功能是一个坏功能。