你们喜欢以下那种 return 方式

2022-07-15 18:55:01 +08:00
 OOLAOO

第一种

if(xxx){
  return xxxx;
}else{
  return xxxx;
}

第二种

 xxx response;
if(xxx){
	response = xxxx;
}
else{
	response = xxxx;
}
return response
2782 次点击
所在节点    问与答
33 条回复
Cabana
2022-07-16 00:04:46 +08:00
喜欢这样🐶 return if(xxx) xxx else xxx
PMR
2022-07-16 00:21:37 +08:00
if(xxx){
aaa()
}else{
bbb()
}

aaa() {
return xxx;
}
bbb() {
return xxx;
}

:doge:
SirCarol
2022-07-16 08:08:50 +08:00
andyJado
2022-07-16 09:38:21 +08:00
现在 cpu 都有分支预测, 第一种预测失败导致的回滚应该会更严重一些.

所以, 能用 guard 用 guard, 能 pattern match 就 match, 不写 if eles 之后代码读起来舒服多了..

https://gitpress.io/u/1799/hardware_zh
FYFX
2022-07-16 11:56:30 +08:00
我一般优先第一种,不过在有 return 的情况下没必要写 else
icyalala
2022-07-16 13:24:57 +08:00
主要看上下文风格。如果是第一种,我更倾向:
if (xxx) return xxxx;
if (yyy) return yyyy;

@andyJado 要相信编译器,这种开编译优化后一般没什么区别。
chenyu8674
2022-07-16 14:05:24 +08:00
return x ? y : z;

[doge]
wxw752
2022-07-16 14:05:29 +08:00
想起来哪种用哪种
gongquanlin
2022-07-16 14:12:22 +08:00
if(xxx){
return xxx;
}

if(!xxx){
return yyy;
}

习惯不用 else ,感觉 else 看起来别扭

最主要的原因还是见识过公司领导的超级无敌大 if...else...里面还嵌套着 n 个 if else ,相同功能代码在 if 和 else 里来回复制,实在是恶心够了,见着 else 就难受。除非特殊情况不会用。。
lslqtz
2022-07-16 15:50:26 +08:00
res = xxx;
if (a) {
res = yyy;
}
return yes;
ligiggy
2022-07-16 15:57:34 +08:00
第二种叫单出原则,受到很多老程序员的推崇,尤其是 c/c++,但是越来越多的书已经不强求第二种实现了,视具体情况而定。建议 OP 多看点代码优化的书。

多说一句,很多人都不推崇 goto ,或者类似的写法,我也不喜欢, 但是很多编程语言的源码里,有挺多 goto 的,所以,视具体情况而定吧。
ligiggy
2022-07-16 15:58:58 +08:00
另外,还有很多人喜欢
if()
{
}
不喜欢
if(){
}

你可以有喜欢的代码方式,但是成熟的开发者,都需要习惯两种写法。
MrVito
2022-07-16 17:05:58 +08:00
@ligiggy 不同的风格用各种 lint 工具来规范就好了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866495

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX