mirror of
https://github.com/gopl-zh/gopl-zh.github.com.git
synced 2025-12-17 19:24:19 +08:00
fix errata
This commit is contained in:
@@ -28,7 +28,7 @@ Unicode字符rune類型是和int32等價的類型,通常用於表示一個Unic
|
||||
|
||||
對於上表中前兩行的運算符,例如+運算符還有一個與賦值相結合的對應運算符+=,可以用於簡化賦值語句。
|
||||
|
||||
整數的算術運算符+、-、`*`和`/`可以適用與於整數、浮點數和複數,但是取模運算符%僅用於整數間的運算。對於不同編程語言,%取模運算的行爲可能併不相同。在Go語言中,%取模運算符的符號和被取模數的符號總是一致的,因此`-5%3`和`-5%-3`結果都是-2。除法運算符`/`的行爲則依賴於操作數是否爲全爲整數,比如`5.0/4.0`的結果是1.25,但是5/4的結果是1,因爲整數除法會向着0方向截斷餘數。
|
||||
算術運算符+、-、`*`和`/`可以適用與於整數、浮點數和複數,但是取模運算符%僅用於整數間的運算。對於不同編程語言,%取模運算的行爲可能併不相同。在Go語言中,%取模運算符的符號和被取模數的符號總是一致的,因此`-5%3`和`-5%-3`結果都是-2。除法運算符`/`的行爲則依賴於操作數是否爲全爲整數,比如`5.0/4.0`的結果是1.25,但是5/4的結果是1,因爲整數除法會向着0方向截斷餘數。
|
||||
|
||||
如果一個算術運算的結果,不管是有符號或者是無符號的,如果需要更多的bit位才能正確表示的話,就説明計算結果是溢出了。超出的高位的bit位部分將被丟棄。如果原始的數值是有符號類型,而且最左邊的bit爲是1的話,那麽最終結果可能是負的,例如int8的例子:
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ bytes包還提供了Buffer類型用於字節slice的緩存。一個Buffer開始
|
||||
```Go
|
||||
gopl.io/ch3/printints
|
||||
|
||||
// intsToString is like fmt.Sprintf(values) but adds commas.
|
||||
// intsToString is like fmt.Sprint(values) but adds commas.
|
||||
func intsToString(values []int) string {
|
||||
var buf bytes.Buffer
|
||||
buf.WriteByte('[')
|
||||
|
||||
@@ -16,7 +16,7 @@ FormatInt和FormatUint函數可以用不同的進製來格式化數字:
|
||||
fmt.Println(strconv.FormatInt(int64(x), 2)) // "1111011"
|
||||
```
|
||||
|
||||
fmt.Printf函數的%b、%d、%u和%x等參數提供功能往往比strconv包的Format函數方便很多,特别是在需要包含附加額外信息的時候:
|
||||
fmt.Printf函數的%b、%d、%o和%x等參數提供功能往往比strconv包的Format函數方便很多,特别是在需要包含附加額外信息的時候:
|
||||
|
||||
```Go
|
||||
s := fmt.Sprintf("x=%b", x) // "x=1111011"
|
||||
|
||||
@@ -39,7 +39,7 @@ func parseIPv4(s string) IP {
|
||||
const noDelay time.Duration = 0
|
||||
const timeout = 5 * time.Minute
|
||||
fmt.Printf("%T %[1]v\n", noDelay) // "time.Duration 0"
|
||||
fmt.Printf("%T %[1]v\n", timeout) // "time.Duration 5m0s
|
||||
fmt.Printf("%T %[1]v\n", timeout) // "time.Duration 5m0s"
|
||||
fmt.Printf("%T %[1]v\n", time.Minute) // "time.Duration 1m0s"
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user