11 5 第十一章小結

2021-06-01 10:35:20 字數 683 閱讀 1347

11.5 第十一章小結

這一章的主題主要是函式程式設計的重構,我們已經看到了很多的示例和概念。我們首先討論了在數學意義上的重構,可以看到,在數學意義上,可以很容易推導出"**",因此,可以看到乙個特定的改變在何時改正。由於其根源在數學中,函式式程式設計通常有相同的屬性。

我們首先**如何能夠使用函式型別,以減少**重複,這是重構的簡單情況。然後,我們看到,函式式程式設計如何容易地跟蹤在**中的相關性,因此,我們可以看到特定的重構是否是正確的。

下一步,我們重點關注使用 xunit.net, 進行函式式程式設計的單元測試。學會如何組合單元測試,使用 f# interactive 進行互動式測試,因此,如果你擔心前面章節中互動式測試,你現在知道,互動式測試只是較大的測試中的乙個部分。此外,我們還演示了不變性如何簡化了測試**,因為,我們只需要測試,乙個函式是否給出預期的結果,而不需要擔心其***。

接著,我們關注了延遲性(laziness)。我們已經看到,延遲性可以用於快取計算的結果,以便當我們再次訪問這個值時,**會更有效地執行。只要我們只使用不可變的資料結構,這種修改不會改變程式的結果,所以,我們可以把它看作是另一種形式的有用的重構。我們還學習了延遲性可以用於表達有趣的函式概念,比如,無窮的資料型別。事實上,這只是下一章的預告,我們將討論 c# 的迭代和 f# 序列表示式,這兩個使我們能夠以更自然的方式來表達序列值。這是乙個更大概念的乙個示例,所以,我們還將介紹如何改變或擴充套件通常的**含義。

modern c design 第十一章

本章介紹了經常遇到的雙分派的一種泛型解決方案。c 在語法上實現了單分派,即虛函式,通過動態機制選擇相應的函式。雙分派是形如fun object1 a,object2 b 根據a和b的實際型別動態自動分派乙個處理函式。最容易想到的方案,蠻幹法 寫一大堆過載函式.不過這種方法會有很強的依賴性。也提供了一...

第十一章3

第十一章 一 滾動元件 awt中的滾動元件包括scrollbar 滾動條 和滾動面板 scrollpane 兩種。1 滾動條scrollbar 在指定的取值範圍內快速選取某一值的功能。i.構造方法 public scrollbar int orientation,int value,int visi...

java第十一章

問題 1 錯誤 2 異常,1 編譯時異常 檢查異常 2 執行時異常 不檢查異常 是否能用 解決,是的就是異常,不是的就是錯誤 問題 1 先驗 2 捕獲 異常捕獲機智 異常的三個種類 1 檢查異常 2 執行時異常 3 錯誤 throw 提示方法呼叫者本方法可能發生異常 throw跟異常物件 throw...