Go程式設計基礎04-常量與運算子
阿新 • • 發佈:2018-12-19
常量的定義
- 常量的值在編譯時就已經確定
- 常量的定義格式與變數基本相同
- 等號右側必須是常量或常量表達式
- 常量表達式中的函式必須是內建函式
package main
import "fmt"
// 常量定義
const a int = 1
const b = 'A'
// 常量組
const (
c = a
d = a + 2
e, f = 1, 'B'
)
func main() {
fmt.Println(a) // 1
fmt.Println(b) // 65
fmt.Println(c) // 1
fmt.Println(d) // 3
fmt. Println(e) // 1
fmt.Println(f) // 66
}
常量的初始化規則與列舉
- 在定義常量組時,如果不提供初始值,將使用上一行的表示式。(如果要使用該規則,要求每一行的常量個數相同)
package main
import "fmt"
// 常量組
const (
c = 1
d
e
)
func main() {
fmt.Println(c) // 1
fmt.Println(d) // 1
fmt.Println(e) // 1
}
表示式與常量表達式的區別在於常量表達式的值是確定的,可知的。
-iota
是常量的計數器,從0開始,常量組中每定義一個常量,則遞增加1.
通過初始化規則與iota
每遇到一個
const
關鍵字,iota
就會重置為0.
package main
import "fmt"
// 常量組
const (
a = 'A' // 此時iota=0
b // 繼承A的表示式'A',iota=1
c // 繼承A的表示式'A',iota=2
d = iota // 繼承A的表示式'A',iota=3
)
const (
e = iota // 遇到新的const,iota=0
)
func main() {
fmt.Println(a) // 65
fmt.Println(b) // 65
fmt.Println(c) // 65
fmt. Println(d) // 65
fmt.Println(e) // 0
}