Syntax 如果if包含退货,我是否应该使用else?
我在书中列举了一些例子,我注意到有两种不同的约定,用于不同的返回条件。这两者有什么区别吗Syntax 如果if包含退货,我是否应该使用else?,syntax,Syntax,我在书中列举了一些例子,我注意到有两种不同的约定,用于不同的返回条件。这两者有什么区别吗 //example 1 if(someCondition) { return (someValue); } return (someOtherValue); //example 2 if(someCondition) { return (someValue); } else { return (someOtherValue); } 就个人而言,我更喜欢第二个示例,因为它更明确,而且我觉
//example 1
if(someCondition)
{
return (someValue);
}
return (someOtherValue);
//example 2
if(someCondition)
{
return (someValue);
}
else
{
return (someOtherValue);
}
就个人而言,我更喜欢第二个示例,因为它更明确,而且我觉得它更可读。如果您的语言包含条件运算符,我建议使用它
return condition ? ifTrue : ifFalse;
除了外表之外没有什么不同。无论您选择哪一种,两者都将返回相同的结果。使用您喜欢的、最适合您的代码或您的团队最了解的内容
据我所知,这方面并没有什么惯例 就我个人而言,我认为在一个方法中有一个return语句总是好的,否则代码可能有点难读,因此无法维护。所以做些类似的事情
def returnVal = default;
if (cond) {
returnVal = whatever
}
return returnVal
就个人而言,当您从函数/方法调用中消除无效状态时,会经常出现这种情况。例如:
sqrt(x) {
if(x < 0)
return 0;
answer=math;
return(answer);
sqrt(x){
if(x<0)
返回0;
答案=数学;
返回(回答);
如果你使用ELSE,你可能会有很多非常可怕的筑巢
这还涉及到“单返回”理论——许多人认为一个方法应该只有一个返回语句。这在某些情况下也会导致混乱
在你的具体例子中,它是50/50
做你喜欢做的事,但我强烈建议尝试一下“立即测试并返回简单案例”理论。避免
否则
并利用早期返回
可以避免代码嵌套太深。哪个示例看起来更具可读性
function doStuff (thing) {
if (thing.foo) {
alert ("thing.foo is alive and well");
if (thing.foo.bar) {
alert ("thing.foo.bar is alive and well");
if (thing.foo.bar.baz) {
alert ("thing.foo.bar.baz is alive and well");
// TODO: stuff with thing.foo.bar.baz
} else {
alert ("thing.foo.bar.baz doesn't exist!");
}
} else {
alert ("thing.foo.bar doesn't exist!");
}
} else {
alert ("thing.foo doesn't exist!");
}
}
或
…我认为第二种更具可读性!或者,在工作中,您可以选择不使用会迫使某些人额外花费几秒钟(到几分钟)的运算符分析和可能的讨论。我已经看到这浪费了很多时间,我从来没有见过一个简单的if/then创建相同类型的时间接收器。在家里,当然,越有趣越好。我喜欢这种速记,但它只有在代码简单时才有用。@Pasha-你当然可以将复杂的逻辑移到它自己的方法中。
返回条件?DoSomethingSpecific():DoSomethingElseSpecific();
理论上我同意,但如果多次尝试让代码只有一个返回,则会使它变得比需要的更复杂。保持函数中的行数小有助于多个返回看起来清晰易懂。是的,这更像是一种“艺术”偏好。我只是认为每个方法一个返回语句看起来很好,而且让事情变得干净。这意味着希望有小方法开始,这也很有帮助。另一个论点是像Eclipse和Intellij这样的IDE都会对此发出警告。试图找出方法返回的位置可能会让人非常困惑。除非最后只有一个返回…我认为当大多数函数调用趋向于在几百或几千行范围内运行时,返回的东西被肯定地使用——在这一点上,在中间找到一个隐藏的返回是地狱。现在我们编写了更小的方法,这一点没有多大帮助(如果有的话)。,但许多人坚持这样做,因为人是习惯性的生物,一旦你告诉某人这是最好的方式,或者这样看起来更好,他们往往会坚持这样做,通常是出于宗教信仰。
function doStuff (thing) {
if (!thing.foo) {
alert ("thing.foo doesn't exist!");
return;
}
alert ("thing.foo is alive and well");
if (!thing.foo.bar) {
alert ("thing.foo.bar doesn't exist!");
return;
}
alert ("thing.foo.bar is alive and well");
if (!thing.foo.bar.baz) {
alert ("thing.foo.bar.baz doesn't exist!");
return;
}
alert ("thing.foo.bar.baz is alive and well");
// TODO: stuff with thing.foo.bar.baz
}