This commit is contained in:
chai2010
2016-01-18 11:14:19 +08:00
parent a91355f5f1
commit 884ada9cd0
20 changed files with 116 additions and 92 deletions

View File

@@ -105,9 +105,9 @@ func (*IntSet) Clear() // remove all elements from the set
func (*IntSet) Copy() *IntSet // return a copy of the set
```
練習6.2: 定義一個變參方法(*IntSet).AddAll(...int)這個方法可以爲一組IntSet值求和比如s.AddAll(1,2,3)。
**練習 6.2** 定義一個變參方法(*IntSet).AddAll(...int)這個方法可以爲一組IntSet值求和比如s.AddAll(1,2,3)。
練習6.3: (*IntSet).UnionWith會用|操作符計算兩個集合的交集我們再爲IntSet實現另外的幾個函數IntersectWith(交集元素在A集合B集合均出現),DifferenceWith(差集元素出現在A集合未出現在B集合),SymmetricDifference(併差集元素出現在A但沒有出現在B或者出現在B沒有出現在A)。
**練習 6.3** (*IntSet).UnionWith會用|操作符計算兩個集合的交集我們再爲IntSet實現另外的幾個函數IntersectWith(交集元素在A集合B集合均出現),DifferenceWith(差集元素出現在A集合未出現在B集合),SymmetricDifference(併差集元素出現在A但沒有出現在B或者出現在B沒有出現在A)。
練習6.4: 實現一個Elems方法返迴集合中的所有元素用於做一些range之類的遍歷操作。
練習6.5: 我們這章定義的IntSet里的每個字都是用的uint64類型但是64位的數值可能在32位的平台上不高效。脩改程序使其使用uint類型這種類型對於32位平台來説更合適。當然了這里我們可以不用簡單粗暴地除64可以定義一個常量來決定是用32還是64這里你可能會用到平台的自動判斷的一個智能表達式32 << (^uint(0) >> 63)
**練習 6.5** 我們這章定義的IntSet里的每個字都是用的uint64類型但是64位的數值可能在32位的平台上不高效。脩改程序使其使用uint類型這種類型對於32位平台來説更合適。當然了這里我們可以不用簡單粗暴地除64可以定義一個常量來決定是用32還是64這里你可能會用到平台的自動判斷的一個智能表達式32 << (^uint(0) >> 63)