假设我用C编写了这样的代码,结构大致如下:
switch (something)
{
case 0:
return "blah";
break;
case 1:
case 4:
return "foo";
break;
case 2:
case 3:
return "bar";
break;
default:
return "foobar";
break;
}
显然,break
不是代码正确运行所必需的,但是如果我不把它们放在那里,这看起来是一种糟糕的做法。
你认为如何?可以去掉它们吗?或者你会为了增加“正确性”而保留它们吗?
发布于 2010-06-18 04:39:53
我会采取完全不同的策略。不要在方法/函数中间返回。相反,只需将返回值放在局部变量中并在末尾发送它即可。
就我个人而言,我发现以下内容更具可读性:
String result = "";
switch (something) {
case 0:
result = "blah";
break;
case 1:
result = "foo";
break;
}
return result;
发布于 2010-06-18 04:42:22
就我个人而言,我会删除返回并保留中断。我将使用switch语句为变量赋值。然后在switch语句后返回该变量。
虽然这是一个有争议的观点,但我一直认为好的设计和封装意味着一种进入和一种退出的方式。保证逻辑要容易得多,而且不会因为函数的圈复杂度而意外地遗漏清理代码。
有一个例外:如果在函数开始时--在获取任何资源之前--检测到错误的参数,那么可以提前返回。
发布于 2010-06-18 04:38:50
我会把它们去掉。在我的书中,像这样的死代码应该被认为是错误,因为它会让你反复思考,并问自己“我怎么才能执行那行代码呢?”
https://stackoverflow.com/questions/3065438
复制相似问题