第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

return 對代碼可讀性的影響

return 對代碼可讀性的影響

尚方寶劍之說 2019-02-18 23:07:20
在函數(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ù)的可讀性。對于 try-catch 結(jié)構(gòu),在性能上的一丁點(diǎn)犧牲,換來的可讀性提升,是值得的。
查看完整描述

18 回答

?
翻閱古今

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊

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

這種方式怎么樣?

查看完整回答
反對 回復(fù) 2019-03-01
?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊

支持盡早return方案,這樣代碼可讀性較好點(diǎn)!

查看完整回答
反對 回復(fù) 2019-03-01
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

應(yīng)該盡早return,這樣可以簡化排錯(cuò)讀代碼時(shí)的難度,畢竟到第一行直接就return出去都下一個(gè)方法,總比讀完100行代碼發(fā)現(xiàn)只有第一行有用,要好的多

查看完整回答
反對 回復(fù) 2019-03-01
?
神不在的星期二

TA貢獻(xiàn)1963條經(jīng)驗(yàn) 獲得超6個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
?
慕容森

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超18個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
?
梵蒂岡之花

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊

持相反意見,盡早返回不適合的結(jié)果,閱讀性更好。

查看完整回答
反對 回復(fù) 2019-03-01
?
紫衣仙女

TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊

持相反意見,個(gè)人代碼習(xí)慣傾向于盡早將不適合的結(jié)果return,最終底部的return返回正常流程的結(jié)果。

一個(gè)顯著的效果是可以很大程度減少代碼的嵌套層數(shù),這比減少程序多個(gè)出口對于代碼可讀性的提高影響更大。

try...catch...只用在數(shù)據(jù)庫事務(wù)的情況下,拋出異常并回退數(shù)據(jù)。

查看完整回答
反對 回復(fù) 2019-03-01
?
慕俠2389804

TA貢獻(xiàn)1719條經(jīng)驗(yàn) 獲得超6個(gè)贊

中立,團(tuán)隊(duì)自己達(dá)成一致就可以了。
運(yùn)行時(shí)差異并不大??勺x性是對人來說的,如果你使用IDE,比如PHPStorm來說,IDE可以很好的檢測出來是否邏輯上不可達(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的使用吧。

查看完整回答
反對 回復(fù) 2019-03-01
?
白豬掌柜的

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊

觀點(diǎn)與你相反,函數(shù)中要盡可能多的使用 return 來控制,因?yàn)?return 從設(shè)計(jì)上來說就是這個(gè)功能,表示執(zhí)行權(quán)限的移交。這樣不會(huì)造成任何執(zhí)行權(quán)限的問題。所謂函數(shù),從設(shè)計(jì)之初,核心就是計(jì)算和返回。

濫用 try catch 會(huì)導(dǎo)致上級(jí) try catch 無法正確捕獲異常

語義化上來說,return 也比 try catch 更加清晰明了。

查看完整回答
反對 回復(fù) 2019-03-01
?
慕尼黑8549860

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個(gè)贊

function a($b){
    $c = '';
    if($b==1){
        $c = 1;
    }else if($b==2){
        $c = 2;
    }else{
        $c = 0;
    }
    return $c;
}
查看完整回答
反對 回復(fù) 2019-03-01
?
MYYA

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
?
人到中年有點(diǎn)甜

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊

防御式編程

<?php
function run($a) {
    if (!conditionA($a)) return false;
    if (!conditionB($a)) return false;
    //...
    return true
}
查看完整回答
反對 回復(fù) 2019-03-01
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個(gè)贊

請正確使用Exception機(jī)制。

查看完整回答
反對 回復(fù) 2019-03-01
?
慕容708150

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超4個(gè)贊

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

查看完整回答
反對 回復(fù) 2019-03-01
  • 18 回答
  • 0 關(guān)注
  • 662 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)