你们喜欢以下那种 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
2940 次点击
所在节点    问与答
33 条回复
TWorldIsNButThis
2022-07-15 18:56:51 +08:00
我现在更喜欢三目或者 1
有对称的美感
zhlxsh
2022-07-15 18:57:26 +08:00
我觉得没啥区别呀,习惯上的话第一种,少起一个变量名。
tulongtou
2022-07-15 18:59:10 +08:00
第二种
v23x
2022-07-15 19:00:00 +08:00
混着用

看情况把
dem0ns
2022-07-15 19:00:07 +08:00
保险起见 if 里外都用 return
secsilm
2022-07-15 19:04:27 +08:00
按照早返回的话第一种,但是如果逻辑真的这么简单的话就看心情吧。逻辑复杂就最好第一种,对读代码的人有帮助。
netnr
2022-07-15 19:08:04 +08:00
var res = 0;
if(xxx){
res = 1;
}
return res;
golangLover
2022-07-15 19:08:46 +08:00
没有 else
jtacm
2022-07-15 19:13:56 +08:00
第二种。
原因:你的代码不只是你在维护,其他人也会来维护。为了避免后人在中途各种 return ,制造各种 surprise ,破坏代码可读性,建议用第二种,建立规范,最后返回。
aptupdate
2022-07-15 19:23:32 +08:00
一般简单的用第一种,如果有稍微复杂的逻辑会用第二种。
IvanLi127
2022-07-15 19:25:01 +08:00
if(xxx){
return xxxx;
}
return xxxx;
}
IvanLi127
2022-07-15 19:26:29 +08:00
if(xxx){
return xxxx;
}
return xxxx;


我一般这种。
手机操作,前面不小心点到回复按钮发出去了。
csh1617487191
2022-07-15 19:35:03 +08:00
if(xxx) return xxxx;
return xxxx;
mxT52CRuqR6o5
2022-07-15 19:38:17 +08:00
第一种,减少副作用逻辑降低心智负担
Building
2022-07-15 19:40:30 +08:00
二元的话比较喜欢 return a ? { return b }() : { return c }()
说的就是 go 这种二元表达式都不提供的语言
wccc
2022-07-15 21:20:32 +08:00
第一种
dqzcwxb
2022-07-15 21:25:23 +08:00
简单的第一种,复杂或者需要扩展维护的第二种
tcp
2022-07-15 23:02:00 +08:00
复杂情况下,如果第 2 种 if else 之后还有运算,可能会出错,第 1 种及时 return ,避免后续潜伏 bug 。多个选择分支情况下尤其可能出问题。
myxingkong
2022-07-15 23:08:31 +08:00
能用三目的话用三目,不能的话看函数复杂度,不复杂 1 ,复杂 2 。
Jooooooooo
2022-07-15 23:24:54 +08:00
第一种的尴尬之处是, return 的地方是死的, 一旦后续想改动很麻烦.

经验告诉我第二种更好.

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

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

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

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

© 2021 V2EX