使用if-return-return还是if-else-return更高效?
假设我有一个包含return
的if
语句。从效率的角度来看,我应该使用
if(A > B):
return A+1
return A-1
还是
if(A > B):
return A+1
else:
return A-1
在使用编译语言(比如C)或脚本语言(比如Python)时,我应该更倾向于使用哪一种呢?
9 个回答
58
来自Chromium的编码风格指南:
在使用return语句后,不要再写else:
# Bad
if (foo)
return 1
else
return 2
# Good
if (foo)
return 1
return 2
return 1 if foo else 2
280
因为return
语句会结束当前函数的执行,所以这两种写法是等价的(虽然第二种写法可能更容易理解)。
这两种写法的效率差不多,反正如果if
条件不成立,底层的机器代码也得执行一次跳转。
需要注意的是,Python支持一种语法,可以让你在这种情况下只用一个return
语句:
return A+1 if A > B else A-1