1. 程式人生 > >Go程式設計基礎04-常量與運算子

Go程式設計基礎04-常量與運算子

常量的定義

  • 常量的值在編譯時就已經確定
  • 常量的定義格式與變數基本相同
  • 等號右側必須是常量或常量表達式
  • 常量表達式中的函式必須是內建函式
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 }