Fixes #198
This commit is contained in:
chai2010
2016-01-18 11:22:04 +08:00
parent 884ada9cd0
commit 9666211cd7
71 changed files with 107 additions and 105 deletions

View File

@@ -101,7 +101,7 @@ fmt.Printf("%08b\n", x>>1) // "00010001", the set {0, 4}
6.5節給出了一個可以遠大於一個字節的整數集的實現。)
`x<<n``x>>n`移位運算中決定了移位操作bit數部分必是無符號數被操作的x數可以是有符號或無符號數。算術上一個`x<<n`左移運算等價於乘以$$2^n$$,一個`x>>n`右移運算等價於除以$$2^n$$。
`x<<n``x>>n`移位運算中決定了移位操作bit數部分必是無符號數被操作的x數可以是有符號或無符號數。算術上一個`x<<n`左移運算等價於乘以$$2^n$$,一個`x>>n`右移運算等價於除以$$2^n$$。
左移運算用零填充右邊空缺的bit位無符號數的右移運算也是用0填充左邊空缺的bit位但是有符號數的右移運算會用符號位的值填充左邊空缺的bit位。因爲這個原因最好用無符號運算這樣你可以將整數完全當作一個bit位模式處理。
@@ -118,7 +118,7 @@ for i := len(medals) - 1; i >= 0; i-- {
出於這個原因無符號數往往隻有在位運算或其它特殊的運算場景才會使用就像bit集合、分析二進製文件格式或者是哈希和加密操作等。它們通常併不用於僅僅是表達非負數量的場合。
一般來説,需要一個顯式的轉換將一個值從一種類型轉化位另一種類型,併且算術和邏輯運算的二元操作中必是相同的類型。雖然這偶爾會導致需要很長的表達式,但是它消除了所有和類型相關的問題,而且也使得程序容易理解。
一般來説,需要一個顯式的轉換將一個值從一種類型轉化位另一種類型,併且算術和邏輯運算的二元操作中必是相同的類型。雖然這偶爾會導致需要很長的表達式,但是它消除了所有和類型相關的問題,而且也使得程序容易理解。
在很多場景,會遇到類似下面的代碼通用的錯誤:

View File

@@ -154,12 +154,12 @@ func f(x, y float64) float64 {
**練習 3.3** 根據高度給每個多邊形上色,那樣峯值部將是紅色(#ff0000),谷部將是藍色(#0000ff)。
**練習 3.4** 參考1.7節Lissajous例子的函數構造一個web服務器用於計算函數麴面然後返迴SVG數據給客戶端。服務器必設置Content-Type頭部
**練習 3.4** 參考1.7節Lissajous例子的函數構造一個web服務器用於計算函數麴面然後返迴SVG數據給客戶端。服務器必設置Content-Type頭部
```Go
w.Header().Set("Content-Type", "image/svg+xml")
```
這一步在Lissajous例子中不是必因爲服務器使用標準的PNG圖像格式可以根據前面的512個字節自動輸出對應的頭部。允許客戶端通過HTTP請求參數設置高度、寬度和顔色等參數。
這一步在Lissajous例子中不是必因爲服務器使用標準的PNG圖像格式可以根據前面的512個字節自動輸出對應的頭部。允許客戶端通過HTTP請求參數設置高度、寬度和顔色等參數。

View File

@@ -20,7 +20,7 @@ if 'a' <= c && c <= 'z' ||
}
```
布爾值併不會隱式轉換爲數字值0或1反之亦然使用一個顯式的if語句輔助轉換
布爾值併不會隱式轉換爲數字值0或1反之亦然使用一個顯式的if語句輔助轉換
```Go
i := 0

View File

@@ -30,7 +30,7 @@ Unicode轉義也可以使用在rune字符中。下面三個字符是等價的
'世' '\u4e16' '\U00004e16'
```
對於小於256碼點值可以寫在一個十六進製轉義字節中例如'\x41'對應字符'A',但是對於更大的碼點則必使用\u或\U轉義形式。因此'\xe4\xb8\x96'併不是一個合法的rune字符雖然這三個字節對應一個有效的UTF8編碼的碼點。
對於小於256碼點值可以寫在一個十六進製轉義字節中例如'\x41'對應字符'A',但是對於更大的碼點則必使用\u或\U轉義形式。因此'\xe4\xb8\x96'併不是一個合法的rune字符雖然這三個字節對應一個有效的UTF8編碼的碼點。
得益於UTF8編碼優良的設計諸多字符串操作都不需要解碼操作。我們可以不用解碼直接測試一個字符串是否是另一個字符串的前綴

View File

@@ -2,7 +2,7 @@
一個字符串是一個不可改變的字節序列。字符串可以包含任意的數據包括byte值0但是通常是用來包含人類可讀的文本。文本字符串通常被解釋爲采用UTF8編碼的Unicode碼點rune序列我們稍後會詳細討論這個問題。
內置的len函數可以返迴一個字符串中的字節數目不是rune字符數目索引操作s[i]返迴第i個字節的字節值i必滿足0 ≤ i< len(s)條件約束
內置的len函數可以返迴一個字符串中的字節數目不是rune字符數目索引操作s[i]返迴第i個字節的字節值i必滿足0 ≤ i< len(s)條件約束
```Go
s := "hello, world"

View File

@@ -80,7 +80,7 @@ c := 0i // untyped complex; implicit complex128(0i)
註意默認類型是規則的無類型的整數常量默認轉換爲int對應不確定的內存大小但是浮點數和複數常量則默認轉換爲float64和complex128。Go語言本身併沒有不確定內存大小的浮點數和複數類型而且如果不知道浮點數類型的話將很難寫出正確的數值算法。
如果要給變量一個不同的類型,我們必顯式地將無類型的常量轉化爲所需的類型,或給聲明的變量指定明確的類型,像下面例子這樣:
如果要給變量一個不同的類型,我們必顯式地將無類型的常量轉化爲所需的類型,或給聲明的變量指定明確的類型,像下面例子這樣:
```Go
var i = int8(0)