第一种
if(xxx){
return xxxx;
}else{
return xxxx;
}
第二种
xxx response;
if(xxx){
response = xxxx;
}
else{
response = xxxx;
}
return response
1
TWorldIsNButThis 253 天前 via iPhone
我现在更喜欢三目或者 1
有对称的美感 |
2
zhlxsh 253 天前 via iPhone
我觉得没啥区别呀,习惯上的话第一种,少起一个变量名。
|
3
tulongtou 253 天前
第二种
|
4
v23x 253 天前
混着用
看情况把 |
5
dem0ns 253 天前
保险起见 if 里外都用 return
|
![]() |
6
secsilm 253 天前 via Android
按照早返回的话第一种,但是如果逻辑真的这么简单的话就看心情吧。逻辑复杂就最好第一种,对读代码的人有帮助。
|
![]() |
7
netnr 253 天前 via Android ![]() var res = 0;
if(xxx){ res = 1; } return res; |
8
golangLover 253 天前 via Android ![]() 没有 else
|
![]() |
9
jtacm 253 天前 ![]() 第二种。
原因:你的代码不只是你在维护,其他人也会来维护。为了避免后人在中途各种 return ,制造各种 surprise ,破坏代码可读性,建议用第二种,建立规范,最后返回。 |
![]() |
10
aptupdate 253 天前 via iPhone
一般简单的用第一种,如果有稍微复杂的逻辑会用第二种。
|
![]() |
11
IvanLi127 253 天前 via Android
if(xxx){
return xxxx; } return xxxx; } |
![]() |
12
IvanLi127 253 天前 via Android
if(xxx){
return xxxx; } return xxxx; 我一般这种。 手机操作,前面不小心点到回复按钮发出去了。 |
13
csh1617487191 253 天前
if(xxx) return xxxx;
return xxxx; |
14
mxT52CRuqR6o5 253 天前 via Android
第一种,减少副作用逻辑降低心智负担
|
![]() |
15
Building 253 天前 via iPhone
二元的话比较喜欢 return a ? { return b }() : { return c }()
说的就是 go 这种二元表达式都不提供的语言 |
![]() |
16
wccc 253 天前 via iPhone
第一种
|
17
dqzcwxb 253 天前
简单的第一种,复杂或者需要扩展维护的第二种
|
18
tcp 253 天前 via Android
复杂情况下,如果第 2 种 if else 之后还有运算,可能会出错,第 1 种及时 return ,避免后续潜伏 bug 。多个选择分支情况下尤其可能出问题。
|
![]() |
19
myxingkong 253 天前
能用三目的话用三目,不能的话看函数复杂度,不复杂 1 ,复杂 2 。
|
20
Jooooooooo 253 天前
第一种的尴尬之处是, return 的地方是死的, 一旦后续想改动很麻烦.
经验告诉我第二种更好. |
![]() |
21
Cabana 253 天前
喜欢这样🐶 return if(xxx) xxx else xxx
|
22
PMR 253 天前 via Android
if(xxx){
aaa() }else{ bbb() } aaa() { return xxx; } bbb() { return xxx; } :doge: |
![]() |
23
SirCarol 252 天前 via iPhone
|
![]() |
24
andyJado 252 天前
现在 cpu 都有分支预测, 第一种预测失败导致的回滚应该会更严重一些.
所以, 能用 guard 用 guard, 能 pattern match 就 match, 不写 if eles 之后代码读起来舒服多了.. https://gitpress.io/u/1799/hardware_zh |
![]() |
25
FYFX 252 天前
我一般优先第一种,不过在有 return 的情况下没必要写 else
|
![]() |
26
icyalala 252 天前 ![]() |
![]() |
27
chenyu8674 252 天前
return x ? y : z;
[doge] |
![]() |
28
wxw752 252 天前
想起来哪种用哪种
|
29
gongquanlin 252 天前
if(xxx){
return xxx; } if(!xxx){ return yyy; } 习惯不用 else ,感觉 else 看起来别扭 最主要的原因还是见识过公司领导的超级无敌大 if...else...里面还嵌套着 n 个 if else ,相同功能代码在 if 和 else 里来回复制,实在是恶心够了,见着 else 就难受。除非特殊情况不会用。。 |
![]() |
30
lslqtz 252 天前
res = xxx;
if (a) { res = yyy; } return yes; |
![]() |
31
ligiggy 252 天前
第二种叫单出原则,受到很多老程序员的推崇,尤其是 c/c++,但是越来越多的书已经不强求第二种实现了,视具体情况而定。建议 OP 多看点代码优化的书。
多说一句,很多人都不推崇 goto ,或者类似的写法,我也不喜欢, 但是很多编程语言的源码里,有挺多 goto 的,所以,视具体情况而定吧。 |
![]() |
32
ligiggy 252 天前
另外,还有很多人喜欢
if() { } 不喜欢 if(){ } 你可以有喜欢的代码方式,但是成熟的开发者,都需要习惯两种写法。 |