編程最基本的組成部分之一是函數。你可以不用它們編寫非常簡單的程序,但是除了“helloworld”演示之外的所有東西最終都可能需要使用函數。
你有沒有想過為什麼函數是這麼多編程語言的基石?讓我們看看為什麼它們如此重要,以及它們為程序員做了什麼。
簡單地說,編程中的函數是一組執行特定任務的命名代碼組。根據語言,您還可以聽到它們稱為子程序或過程。
一旦你定義了一個函數,你就可以像在程序的其他地方一樣把代碼放進去。通過給函數一個名稱並定義它應該接受的參數,可以將信息傳遞給函數並返回一些結果。函數是可重用的,所以一旦編寫了函數,就可以在程序中的任何其他地方調用它。
所以函數是有用的,但是它們有什麼用途呢?
入門級編程類通常把函數描述為“黑匣子”,也就是說,當程序員調用一個函數時,他們並不關心其中的代碼到底做了什麼;他們只需要結果。
例如,如果您編寫了一個函數來讀取文本文件中的大量數字並計算模式,則不需要知道如何使用它。只要您知道該函數需要一個填充數字的文本文件作為輸入,並輸出一個數字作為結果,您就可以在任何程序中使用它,而不會有太多麻煩。
但這並不是函數封裝代碼的唯一方法。它們還允許程序員將代碼清晰地劃分為段。
雖然主函數可能只有幾十行代碼,但它可以調用多個函數並通過它們執行復雜的操作。這是面向對象編程的核心。另外,它有助於將大型程序分割成更小的部分,以便多人可以處理它們。
當您編寫一些代碼來執行一項任務時,很可能會在程序中多次使用它。
將所需的代碼複製並粘貼到多個位置是個壞主意。它不僅給你的程序增加了更多的複雜性,而且還為出錯引入了更多的地方。如果您更改了原始塊中的某些內容,則必須記住將其重新粘貼到其他地方。
函數消除了這個問題。它們使得在程序的其他地方重用代碼變得很容易。一旦定義了一個函數,就可以隨時調用它,並確保它以相同的方式運行。這既節省了時間又降低了複雜性,這是程序的兩個受歡迎的特性。
在今天的許多公司,一個程序員編寫的函數可能會被公司的其他人用在其他項目中。
因為函數是獨立的,所以它們非常便攜。在適當的地方重用它們可以減少重複工作,更有效地利用編程資源,並有助於在整個公司中開發標準。
大多數程序員都知道調試意大利麵條代碼的痛苦:一個混亂的混亂,幾乎不可能發生,因為它的結構很小。沒有明確的功能,程序就會跳轉到整個地方。這使得調試變得困難,對於剛進來的人來說,這是一個巨大的痛苦。
所有的東西都清楚地劃分為函數,程序員可以使用單元測試來確認這些函數是否正常工作。他們可以將問題隔離到一個函數中,而不必對整個程序進行排序以確定問題。
函數也增加了可讀性。一套乾淨的代碼在使其易於維護和遵循方面有很大的幫助。另一種選擇是混淆GOTO語句,這在現代編程中是非常不受歡迎的。
考慮一下Wikipedia的一個簡單示例,首先是GOTO語句,然後是結構化樣式,看看這有什麼不同:
1 i=02 i+=13 PRINT i; "squared=";i*i4 IF i>100 THEN GOTO 65 GOTO 26 PRINT "Program Completed."7 END1 FOR i=1 TO 1002 PRINT i;"squared=";i*i3 NEXT i4 PRINT "Program Completed."5 END我們在上面討論了抽象;需要注意的是,函數可以幫助您將步驟與實際數據分開。只要您傳遞它期望的函數參數,它就不關心數據是什麼。該函數的每次運行都會創建臨時變量,然後在返回結果後丟棄它們。這樣可以保持名稱空間的清晰,並允許重用短期變量名,如“x”。
將重要數據保留在函數之外有助於防止不必要的修改。這是現代編程中的明智之舉。
通常,當我們討論函數時,我們討論的是用戶創建的函數,但它們不是函數的唯一類型。所有編程語言都包含一些函數,您無需自己創建它們就可以使用這些函數。
例如,無論您使用哪種語言,都不必編寫基本算法、將文本打印到屏幕以及類似任務的函數。你能想象如果你被要求告訴計算機如何執行這些基本操作會是多麼浪費時間嗎?
現在你知道為什麼編程語言使用函數了,為什麼它們如此重要了。包含函數的最大原因歸結為一個事實:函數允許您將程序分解為更易於管理的部分。當您這樣做時,您的程序變得更易於管理,更易於測試,並且易於重用。
如果沒有函數,程序將有大量重複的代碼,不會以邏輯順序流動,也不會分離實用程序。這對於管理、測試和調試來說是一個噩夢。感謝上帝的編程語言使用它們!
有關更多編程基礎知識,請查看我們關於while循環如何工作的說明。
...F版本C和目標C的區別 引用 1.lyndapodcast,“Objective-C教程:為什麼使用Objective-C?”?YouTube,YouTube,2014年3月12日。這裡有2個。tutorialspoint.com網站. “C語言概述”,重點。此處提供2tutorialspoint.com網站. “C語言概述”,重點。 ...
...計與指令式程式設計的區別。 目錄 1. 概述和主要區別 2. 什麼是函數語言程式設計 3. 什麼是指令式程式設計 4. 函數語言程式設計與指令式程式設計的相似性 5. 並排比較-函數語言程式設計與表格形式的指令式程式設計 6.摘要 什...
...將格式化字串列印到檔案中。 目錄 1. 概述和主要區別 2. 什麼是printf 3. 什麼是fprintf 4. printf和fprintf之間的相似性 5. 並排比較-表格形式的printf與fprintf 6. 摘要 什麼是印刷品(printf)? “printf”函式用於以格式化的方式向顯示裝置(...
...大的定製——從佈局到滑動到Mac上的鍵盤快捷鍵。這就是為什麼你應該在所有蘋果裝置上使用Spark作為預設的電子郵件客戶端。 ...
...織者,這都無關緊要:你需要所有能得到的幫助!這就是為什麼這些移動應用程式是必不可少的。 ...