在线不卡日本ⅴ一区v二区_精品一区二区中文字幕_天堂v在线视频_亚洲五月天婷婷中文网站

  • <menu id="lky3g"></menu>
  • <style id="lky3g"></style>
    <pre id="lky3g"><tt id="lky3g"></tt></pre>

    高級(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語(yǔ)句利用了return語(yǔ)句結(jié)束函數(shù)執(zhí)行這一事實(shí)。在某些情況下,這可以讓我們消除else語(yǔ)句,從而縮短代碼。

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

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

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

    使用 if…return 代替 if…else

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

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

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

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

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

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

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

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

    這個(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é)假日休息