在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  PHP  GO  網(wǎng)絡(luò)安全/ return 對(duì)代碼可讀性的影響

return 對(duì)代碼可讀性的影響

在函數(shù)中,是否應(yīng)該控制盡量少的 return 出口?
比如 (以 PHP 代碼舉例):

<?php

/**
 * 控制盡量少的退出點(diǎn)
 */
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());
    }
}

/**
 * 不控制,可以結(jié)束的時(shí)候直接 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);
}

常見觀點(diǎn)

正面:應(yīng)該控制

  • 過多的 renturn,增加了函數(shù)出口點(diǎn),不利于代碼閱讀

反面:沒必要

  • 多個(gè) return 也沒什么,類似 try-catch 在效率上有所損失,盡量少用

中立

  • 兩種寫法只是跟人風(fēng)格問題,沒有優(yōu)略
  • 短函數(shù)多個(gè) return 無傷大雅,但是長函數(shù)中,會(huì)嚴(yán)重降低可讀性

各位客觀,歡迎留下你的觀點(diǎn)。

我的觀點(diǎn):
無論是短函數(shù)還是長函數(shù),都盡量控制一下 return 點(diǎn),因?yàn)槎毯瘮?shù)隨著迭代可能會(huì)變成長函數(shù)。
而且多個(gè) return 會(huì)明顯降低長函數(shù)的可讀性。
對(duì)于 try-catch 結(jié)構(gòu),在性能上的一丁點(diǎn)犧牲,換來的可讀性提升,是值得的。

回答
編輯回答
解夏

return (is_dir($this->dirPath) ? rmdir($this->dirPath) : false) ? true : false;

這種方式怎么樣?

2017年12月1日 21:49
編輯回答
紓惘

個(gè)人傾向return;關(guān)于可讀性,return了,后面的代碼就別讀了。

2017年2月25日 05:05
編輯回答
壞脾滊

個(gè)人傾向于盡快return的原則,特別是對(duì)于多層嵌套的iffor,能第二行return,絕不放第三行。

2018年6月8日 04:41
編輯回答
硬扛

個(gè)人傾向盡早return,減少過多運(yùn)行無用代碼

2017年11月25日 21:26
編輯回答
柚稚

個(gè)人傾向盡早return;
函數(shù)越短越好,單一職責(zé),劃分最小單元。

2017年5月22日 11:21
編輯回答
病癮

中立,團(tuán)隊(duì)自己達(dá)成一致就可以了。
運(yùn)行時(shí)差異并不大??勺x性是對(duì)人來說的,如果你使用IDE,比如PHPStorm來說,IDE可以很好的檢測(cè)出來是否邏輯上不可達(dá)的代碼或者區(qū)間空洞這種問題,如果你再使用 phpdoc 來規(guī)范你的return 類型,IDE可以直接給你標(biāo)記出來你的哪些返回是有問題的。如果你使用phpcs這種靜態(tài)掃描工具再結(jié)合IDE來一起工作的話,你會(huì)發(fā)現(xiàn),IDE給出的提示會(huì)非常詳細(xì)。。細(xì)到你不想使用。。。
如果你說的可讀性是指 文本編輯器 里的可讀性,你還是在團(tuán)隊(duì)里面規(guī)范下IDE的使用吧。

2017年8月21日 23:01
編輯回答
冷溫柔

其實(shí)方法單一職責(zé)后,return的使用不會(huì)那么讓人討厭

2017年3月5日 15:26
編輯回答
帥到炸

在我看來只要不是壓縮和混淆,都不影響閱讀

2017年5月27日 23:10
編輯回答
青黛色

盡早返回。
造成難以閱讀的不是return多,是代碼有其他問題。

2017年5月12日 04:44
編輯回答
過客

應(yīng)該盡早 return 支持 +1,減少嵌套和圈復(fù)雜度,感覺還是挺不錯(cuò)的哦 (??ロ??)?? ~~

2017年7月16日 14:45