簡體   English   中英

需要知道良好的做法,我應該遵循以下代碼

[英]Need to know good practice should i follow on below code

我的代碼為:

 int good_practice(void)
    {
      if (somethings == TRUE)
       return true;  //i am asked to remove it coz it will reach anyhow at end and do same but i feels it is good practice and why should i wait for end?
      else
       return false
      }
     }
     return true; 
    }

我被要求刪除第一個返回值,因為它最終將到達函數的結尾並返回true。這好嗎?

我覺得為什么我需要等待cpu在函數結束時返回並盡早返回。如果我決定以某種條件返回,為什么我應該從結尾返回,為什么本身不為什么要等待結尾?

而且如果我在等待結束,我會增加時間復雜度(我知道這不會有任何區別),但是指令的增加也不會增加。

請幫助我擺脫這種困惑?

這被稱為“早期回報”,我認為沒有明確的共識。

優點:

  • 如果您提早返回,則不能錯誤地執行其他一些代碼。
  • 如果您正在閱讀此特定的執行分支,則提早返回將使流程更明確。
  • 還可以通過提早返回來降低縮進級別。

缺點:

  • 當您查看整個功能時,更容易錯過早日回報。

以前有一些關於提早回報的類似問題,例如請參見此處

要求您刪除第一個return true因為您可以像這樣簡單地檢查,而沒有額外的冗余return true

int good_practice(void) {
    if(!somethings) { 
        return false;
    }
    return true;
}

無論如何,所討論的代碼幾乎是多余的

您可以用更好的版本替換它,如下所示:

int good_practice(void)
{
    return somethings;
}

關於提前歸還:

通常最好在末尾有一個返回,因為在更早返回時獲得的性能與通過返回一個返回的可讀性相差甚遠。

(盡管那只是我自己的經驗)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM