亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                高級(jí)開發(fā)人員的建議:停止使用隱含的“else”

                高級(jí)開發(fā)人員的建議:停止使用隱含的“else”

                我認(rèn)為有一種趨勢(shì)——至少在初級(jí)開發(fā)人員中——認(rèn)為代碼越短越好。但情況并非總是如此。

                我認(rèn)為有一種趨勢(shì)——至少在初級(jí)開發(fā)人員中——認(rèn)為代碼越短越好。(在我之后重復(fù):更短并不總是更好。)我當(dāng)然會(huì)成為這種思路的犧牲品,即使我知道這是錯(cuò)誤的。這就是為什么當(dāng)我發(fā)現(xiàn)它時(shí),我認(rèn)為隱含else是自切片面包以來最好的東西。

                直到一位高級(jí)開發(fā)人員對(duì)我進(jìn)行了其他教育。

                本·懷特在Unsplash上拍攝。這是我被嚇壞了。

                這是什么隱含的 ‘ else’?

                如果您已經(jīng)熟悉該概念,請(qǐng)?zhí)料乱徊糠帧?duì)于其他所有人:

                使用隱式elsewithif語句利用了return語句結(jié)束函數(shù)執(zhí)行這一事實(shí)。在某些情況下,這可以讓我們消除else語句,從而縮短代碼。

                看看下面的玩具giveMeFood功能giveMeFoodImplicit。從技術(shù)上講,我們不需要 an,else因?yàn)槿绻憬o我吃巧克力(只是說),該函數(shù)會(huì)提前返回’yum’并停止執(zhí)行。如果你沒有,那么它會(huì)返回’no Thanks’。

                兩個(gè)函數(shù)——一個(gè)帶有顯式“else”,一個(gè)帶有隱式“else”

                事實(shí)上,我可以添加更多if…return語句來代替if…else,最后添加一個(gè)默認(rèn)值return!看起來更干凈,不是嗎?這是否意味著我們可以else永遠(yuǎn)吻別?

                使用 if…return 代替 if…else

                為什么以及何時(shí)避免隱含’else’

                肯定有使用隱式的場(chǎng)合else,但這是高級(jí)開發(fā)人員向我建議的:

              1. Elses 有助于使您的條件句保持明確,以便其他人(包括您未來的自己)可擴(kuò)展并易于理解它們。
              2. 如果傳入的參數(shù)不是您的函數(shù)不是為處理而構(gòu)建的,您可以使用 finalelse作為包羅萬象的方法或處理錯(cuò)誤。
              3. 這是一個(gè)例子來說明他的意思。

                假設(shè)我們有一個(gè)函數(shù)可以檢查用戶選擇的國家,并返回一個(gè)撥號(hào)代碼。目前,checkCountryCode僅用于處理”United States”和”United Kingdom”作為參數(shù)。else使用隱式完全省略第二個(gè)條件并縮短代碼是很誘人的。

                checkCountryCode 函數(shù)最初僅用于處理兩個(gè)輸入,因此很想使用隱式 else

                如果我們以后想要擴(kuò)展該功能以處理更多國家(例如烏拉圭烏茲別克斯坦),就會(huì)出現(xiàn)問題。很容易忘記或混淆隱式return應(yīng)該處理的內(nèi)容(在這種情況下,+44如果輸入是,它應(yīng)該返回”United Kingdom”)!

                當(dāng)我們開始擴(kuò)展函數(shù)以處理更多國家/地區(qū)時(shí),很容易忘記隱含的 else 應(yīng)該處理什么條件!

                現(xiàn)在這是用顯式elses 重寫的代碼。它肯定會(huì)更長(zhǎng),但現(xiàn)在如果有人經(jīng)過我們尚未考慮的國家/地區(qū),則會(huì)引發(fā)錯(cuò)誤——如果此函數(shù)嵌套在更大的代碼庫中,這將特別有用。

                這個(gè)實(shí)現(xiàn)看起來有點(diǎn)冗長(zhǎng),但它更具可讀性,因此更容易擴(kuò)展

                是的,你可以在沒有 final 的情況下拋出錯(cuò)誤else,但這是我們需要問自己的基本問題:

                省略elses left, right 和 center真的讓我的代碼更容易理解嗎?如果有一堆if…returns然后throw在底部突然出現(xiàn)一個(gè)聲明,其他人會(huì)很直觀地閱讀嗎?

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年6月21日 06:42
                下一篇 2022年6月21日 06:43

                相關(guān)推薦

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息