在函数中,是否应该控制尽量少的 return
出口?
比如 (以 PHP
代码举例):
<?php
/**
* 控制尽量少的退出点
*/
function foo1($var)
{
try {
if (empty($var)) {
throw new \Exception('emty var');
}
if (!is_string($var)) {
throw new \Exception('var must be string');
}
return sprintf("input-var:%s \n", $var);
} catch (\Exception $e) {
return sprintf("error:%s \n", $e->getMessage());
}
}
/**
* 不控制,可以结束的时候直接 return
*/
function foo2($var)
{
if (empty($var)) {
return 'error:empty var' . PHP_EOL;
}
if (!is_string($var)) {
return 'error:var must be string' . PHP_EOL;
}
return sprintf("input-var:%s \n", $var);
}
renturn
,增加了函数出口点,不利于代码阅读return
也没什么,类似 try-catch
在效率上有所损失,尽量少用return
无伤大雅,但是长函数中,会严重降低可读性各位客观,欢迎留下你的观点。
我的观点:
无论是短函数还是长函数,都尽量控制一下 return
点,因为短函数随着迭代可能会变成长函数。
而且多个 return
会明显降低长函数的可读性。
对于 try-catch
结构,在性能上的一丁点牺牲,换来的可读性提升,是值得的。
白猪掌柜的
慕容708150
UYOU
人到中年有点甜
白衣染霜花
杨__羊羊
MYYA
慕码人8056858
慕尼黑8549860
翻阅古今
相关分类