各言語にインデントのための独自の規則があることを認識している間、私は最近発見したものを悩ますことはできません。 PHPマニュアルからこのコードを検討してください:PHPとJavaScriptスイッチのインデント
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
それぞれのcaseはswitch文からインデントされています。これは、コードが読みやすく、ブロック本体がその内部に1レベル含まれているため、意味があります。私はJSLintで同等のJavaScriptのswitchステートメントをテストするとき
しかし、:
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はerrであるか、それとも規則に従っていますか?後者が真実ならば、なぜ慣習は明瞭さのためにインデントしないのですか?
JSLintは実際にこの種のものについて不平を言いますか? * -dies- * – BoltClock
JS&PHPはPythonではありません。好きなインデントを使用してください。 – Shikiryu
[( "" apple "、" bar "、" cake "] indexOf(i)!= -1)alert(" i "は+" i ");';) – Gumbo