命令和代碼有什么區別?
定義: 命令式語言使用一系列語句來確定如何達到特定目標。據說這些聲明會依次執行每個程序,從而改變程序的狀態。 例子: Java是一種命令式語言。例如,可以創建一個程序來添加一系列數字: 每個語句都會更改程序的狀態,從將值分配給每個變量到最終添加這些值。使用五個語句序列明確告訴程序如何將數字5,10和15加在一起。
功能語言: 功能性編程范例被明確地創建以支持解決問題的純功能方法。函數式編程是一種聲明式編程。
純函數的優點: 將函數轉換作為純函數實現的主要原因是純函數是可組合的:即自包含和無狀態。這些特性帶來了許多好處,其中包括:增加了可讀性和可維護性。這是因為每個功能的設計都是為了完成一個特定的任務。該功能不依賴于任何外部狀態。
更容易重復發展。由于代碼更容易重構,因此對設計的更改通常更容易實現。例如,假設你編寫了一個復雜的轉換,然后意識到某些代碼在轉換中會重復多次。如果你通過純粹的方法重構,你可以隨意調用你的純方法,而不用擔心副作用。
更簡單的測試和調試。因為純函數可以更容易地單獨測試,所以你可以編寫測試代碼來調用具有典型值,有效邊緣情況和無效邊緣情況的純函數。
對于面向對象的人或命令式語言:
面向對象的語言當你對事物有一套固定的操作時,并且隨著你的代碼的發展,你主要增加新的東西。這可以通過添加實現現有方法的新類來完成,并且現有的類單獨存在。 當你有一組固定的東西時,函數式語言是很好的,隨著代碼的發展,你主要在現有的東西上添加新的操作。這可以通過添加使用現有數據類型進行計算的新功能來完成,并且現有的功能可以單獨使用。