2016-04-26 32 views

回答

2

編碼很簡單,調試很難。代碼使調試瑣碎。 - Barry Rountree

通過一次賦值,可以確保該變量在整個函數體中具有一個值。它使調試更容易。您可以隨時進行調試和記錄。你可以很容易地發現它獲得價值的地方等等。這不明顯嗎?

1

關於功能程序的目標是避免side effects。簡而言之,這是代碼的一個屬性,每次執行時其行爲都完全相同。這就是爲什麼shared state is being avoided以及爲什麼開發者經常對厄蘭的process dictionary皺眉頭。純粹的功能語言不會有任何副作用。各種功能語言試圖形式化產生副作用的代碼,例如Haskell

顯然,如果賦值給一個變量的值可以改變,那麼執行兩次的同一個函數會根據變量中包含的值產生不同的結果。在從一個對象上執行的函數的OOP輸出中產生一個依賴於該對象中包含的狀態的結果。因此,如果不知道對象中包含的狀態,則無法正確理解代碼。

使用單一賦值時,輸出不依賴於狀態,而僅依賴於傳遞給函數的參數。這在崩潰的情況下特別有用,並且您有堆棧跟蹤或記錄函數的調試輸出。您可以讀取代碼並將值分配給每個變量,因爲知道如果再次執行相同的代碼,則不會更改這些值。

相關問題