【发布时间】:2017-11-26 02:19:49
【问题描述】:
我有一位同事以这种方式使用三元运算符(在 javascript 中):
var genderLabel = '';
isMale? genderLabel = 'Man' : genderLabel = 'Woman';
在 C# 中,我会这样做。
var genderLabel = isMale? "Man" : "Woman";
我的同事说这是一个 javascript 编码约定……这是真的吗?我不是 javascript 专家,我不喜欢这种语言...当我查看代码时,我会专注于左侧以跟踪变量初始化或赋值,这种风格迫使我阅读整行。
我还在维护一个前雇员的 Java 代码,他以同样的方式使用三元运算符。那是反模式吗?我认为编译器应该禁止它,就像在 if 语句中禁止它一样:
if(x = 2)
{
...
}
这不会在 C# 中编译。
【问题讨论】:
-
我以前从未见过这种情况。不仅是一个很大的禁忌,因为它会占用更多的重复空间,而且它混乱且语义上很奇怪。
标签: javascript coding-style ternary-operator