虽然我意识到每种语言都有自己的缩进约定,但我不禁要对最近发现的东西感到烦恼.从
PHP手册考虑这个代码:
switch ($i) { case "apple": echo "i is apple"; break; case "bar": echo "i is bar"; break; case "cake": echo "i is cake"; break; }
请注意,每个案例都是从switch语句缩进的.这是有道理的,因为代码更容易阅读,并且块的主体包含在其中的一个级别.
但是,当我在JSLint中测试等效的JavaScript开关语句时:
switch (i) { case "apple": alert("i is apple"); break; case "bar": alert("i is bar"); break; case "cake": alert("i is cake"); break; }
switch (i) { case "apple": alert("i is apple"); break; case "bar": alert("i is bar"); break; case "cake": alert("i is cake"); break; }
这似乎是违反直觉的,因为每种情况现在都与交换机块本身是一致的.我无法想象有什么可能会被认为更好的原因,更不用说触发错误.
JSLint是错误的还是按照惯例?如果后者是真实的,为什么公约不会缩小清楚?