Learning C++ 之1.4b 函數爲什麼是有用的以及怎麼有效地使用函數

之前我們已經介紹了函數的基本概念和功能,下面看一下爲什麼函數是非常重要的。

爲什麼用函數:

一些程序員會問“我們放在函數的代碼直接放到main函數不就可以了麼”。在大多數情況下,尤其是代碼量非常小的情況下是可以的。但是當代碼量巨大的時候,你就能發現函數使用的好處了。

  • 有組織性:因爲現在的代碼程序都非常複雜,把所有代碼都寫在main函數裏面顯得比較混而且不利於維護。一個函數就相當於一個小程序,這樣可以不依賴其他函數單獨開發。將一個大的程序拆解成一些小的函數,也方便與程序的開發和後期維護。
  • 可重用性:一旦寫完一個函數,可以在程序中調用多次。這就減少了重複的代碼量,同時較少了粘貼複製的錯誤。同時函數也可以被其他程序調用,避免了從頭再寫。
  • 可測試性:因爲函數減少了代碼冗餘,所以寫的測試代碼量會更少。同時因爲函數是獨立存在運行的,所以我們一旦驗證一個函數可以正常工作,之後除非更改函數,就不需要驗證了。這就減少了我們大量的驗證時間和代碼量。
  • 可擴展性:當我們的新程序需要額外的功能的時候,我們就可以單獨寫一個函數來實現功能。這也難怪每次調用這個函數就實現了新功能。
  • 抽象性:當你使用函數的時候,你只需要知道函數的輸入,輸出,功能就可以了。沒有必要關注具體的實現,這就很好的方便使用者。

有效地使用函數:

對程序員來說一個巨大的挑戰就是如何有效地使用函數,下面是幾條有效的建議:

  • 當程序有重複使用的時候,可以抽象成函數。
  • 當程序的輸入和輸出是一族離散的數值的話,可以考慮使用函數,尤其是函數比較複雜時。
  • 一個函數應該只執行一個任務。
  • 當一個函數非常長,複雜,難以理解的時候,建議將其拆分成多個小的函數,我們稱作重構。

典型來說,在學習c++的過程中你將會寫一些程序,包含以下三個任務:

  • 讀取使用者的參數
  • 使用讀取的參數來計算結果
  • 輸出計算的最終結果

對於比較簡單的程序來說,我們可以都寫在main函數裏。但是對於複雜的程序來說,我們會建議通過多個函數的形式來實現。

程序員新手經常把計算結果和輸出結果寫在一個函數裏,嚴格來說這違反了一個函數只能有一個功能的準則。一個計算結果的函數應該返回一個值給調用者,由調用者決定是否打印值。

這個我們將會在以後的課程中詳細介紹。1.10a

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章