回到简体

This commit is contained in:
chai2010
2016-02-15 11:06:34 +08:00
parent 9e878f9944
commit 2b37b23285
177 changed files with 2354 additions and 2354 deletions

View File

@@ -1,14 +1,14 @@
## 3.6. 常量
常量表式的值在編譯期計算,而不是在行期。每常量的潛在類型都是基礎類boolean、string或字。
常量表式的值在编译期计算,而不是在行期。每常量的潜在类型都是基础类boolean、string或字。
常量的聲明語句定了常量的名字,和量的聲明語法類似,常量的值不可改,這樣可以防止在行期被意外或意的改。例如,常量比量更合用於表達像π之類的數學常數,因爲它們的值不會發生變化:
常量的声明语句定了常量的名字,和量的声明语法类似,常量的值不可改,这样可以防止在行期被意外或意的改。例如,常量比量更合用于表达像π之类的数学常数,因为它们的值不会发生变化:
```Go
const pi = 3.14159 // approximately; math.Pi is a better approximation
```
變量聲明一,可以批量明多常量;這比較適合聲明一組相關的常量:
变量声明一,可以批量明多常量;这比较适合声明一组相关的常量:
```Go
const (
@@ -17,11 +17,11 @@ const (
)
```
所有常量的算都可以在編譯期完成,這樣可以減少運行時的工作,也方便其他編譯優化。操作是常量,一些運行時的錯誤也可以在編譯時被發現,例如整除零、字符串索引越界、任何導致無效浮點數的操作等。
所有常量的算都可以在编译期完成,这样可以减少运行时的工作,也方便其他编译优化。操作是常量,一些运行时的错误也可以在编译时被发现,例如整除零、字符串索引越界、任何导致无效浮点数的操作等。
常量的所有算術運算、邏輯運算和比較運算的果也是常量,常量的類型轉換操作或以下函數調用都是返常量len、cap、real、imag、complex和unsafe.Sizeof§13.1)。
常量的所有算术运算、逻辑运算和比较运算的果也是常量,常量的类型转换操作或以下函数调用都是返常量len、cap、real、imag、complex和unsafe.Sizeof§13.1)。
爲它們的值是在編譯期就定的,因此常量可以是構成類型的一部分,例如用指定數組類型的度:
为它们的值是在编译期就定的,因此常量可以是构成类型的一部分,例如用指定数组类型的度:
```Go
const IPv4Len = 4
@@ -33,7 +33,7 @@ func parseIPv4(s string) IP {
}
```
常量的明也可以包含一個類型和一值,但是如果沒有顯式指明型,那麽將從右邊的表式推斷類型。在下面的代time.Duration是一命名型,底層類型是int64time.Minute是對應類型的常量。下面明的兩個常量都是time.Duration型,可以通%T參數打印型信息:
常量的明也可以包含一个类型和一值,但是如果没有显式指明型,那么将从右边的表式推断类型。在下面的代time.Duration是一命名型,底层类型是int64time.Minute是对应类型的常量。下面明的两个常量都是time.Duration型,可以通%T参数打印型信息:
```Go
const noDelay time.Duration = 0
@@ -43,7 +43,7 @@ fmt.Printf("%T %[1]v\n", timeout) // "time.Duration 5m0s"
fmt.Printf("%T %[1]v\n", time.Minute) // "time.Duration 1m0s"
```
如果是批量明的常量,除了第一外其它的常量右的初始化表式都可以省略,如果省略初始化表達式則表示使用前面常量的初始化表達式寫法,對應的常量型也一的。例如:
如果是批量明的常量,除了第一外其它的常量右的初始化表式都可以省略,如果省略初始化表达式则表示使用前面常量的初始化表达式写法,对应的常量型也一的。例如:
```Go
const (
@@ -56,7 +56,7 @@ const (
fmt.Println(a, b, c, d) // "1 1 2 2"
```
如果隻是簡單地複製右邊的常量表式,其實併沒有太用的值。但是它可以帶來其它的特性那就是iota常量生成器法。
如果只是简单地复制右边的常量表式,其实并没有太用的值。但是它可以带来其它的特性那就是iota常量生成器法。
{% include "./ch3-06-1.md" %}