c语言case后default,default-case

本文讨论了代码风格规范中关于switch语句是否必须包含default案例的争议。一种观点主张始终明确default行为,即使为空,以防止遗漏;另一种观点允许省略default,但需通过注释表明意图。文章还介绍了 ESLint 的`default-case`规则,该规则要求每个switch语句包含default,并提供了如何配置规则以接受特定注释模式的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

default-case

一些代码约定要求所有switch语句都有一个default案例,即使默认情况下是空的,例如:

switch (foo) {

case 1:

doSomething();

break;

case 2:

doSomething();

break;

default:

// do nothing

}

我们的想法是,最好总是明确说明默认行为应该是什么,以便明确开发人员是否忘记了错误地包含默认行为。

其他代码约定允许您跳过该default案例,只要有注释表明该省略是故意的,例如:

switch (foo) {

case 1:

doSomething();

break;

case 2:

doSomething();

break;

// no default

}

这里的意图再一次表明,开发者打算在那里没有默认行为。

规则细节

此规则旨在要求default的情况下,switch语句。如果没有任何default情况,您可以选择包含// no default最后一个case。评论可能在任何需要的情况下,例如。// No Default

此规则的错误代码示例:

/*eslint default-case: "error"*/

switch (a) {

case 1:

/* code */

break;

}

此规则的正确代码示例:

/*eslint default-case: "error"*/

switch (a) {

case 1:

/* code */

break;

default:

/* code */

break;

}

switch (a) {

case 1:

/* code */

break;

// no default

}

switch (a) {

case 1:

/* code */

break;

// No Default

}

选项

该规则接受单个选项参数:

将该commentPattern选项设置为正则表达式字符串以更改默认/^no default$/i评论测试模式

commentPattern

选项的正确代码示例{ "commentPattern": "^skip\\sdefault" }:

/*eslint default-case: ["error", { "commentPattern": "^skip\\sdefault" }]*/

switch(a) {

case 1:

/* code */

break;

// skip default

}

switch(a) {

case 1:

/* code */

break;

// skip default case

}

何时不使用它

如果您不想强制switch声明某个default案例,则可以安全地禁用此规则。

相关规则

no-fallthrough

版本

这条规则是在 ESLint 0.6.0 中引入的。

资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值