第 5 節:常量

kuibatian發表於2019-11-17

1:常量定義使用

我們都知道,變數是用來儲存資料,並且變數裡面儲存的值是可以在程式執行時隨時發生變化的,但是,常量裡面的值確定好後,後面是不允許修改的。下面看一下關於常量的定義使用:

常量的命名規範與變數命名規範一致。

問題:什麼場景下會用到常量呢?
在程式開發中,我們用常量儲存一直不會發生變化的資料,例如:π,身份證號碼等。像這類的資料,在整個程式中執行中都是不允許發生改變的。

package main

import "fmt"

func main0501() {
    //var a int = 10
    //常量的定義  一般定義常量使用大寫字母
    const MAX int = 10
    //常量可以參與程式的計算
    //b:=a+10
    //常量不允許左值賦值
    //a=a+10//err
    //a=100//err
    fmt.Println(MAX)

}
func main0502() {
    const MAX = "你瞅啥"

    //fmt.Println(MAX)
    //fmt.Printf("%T\n",MAX )
    //go語言常量的地址 不允許訪問
    //fmt.Printf("%p",&MAX)//err
}

func main0503() {
    //計算圓的面積和周長
    //面積 PI*r*r  math.Pow(r,2)
    //周長 2*PI*r

    //PI 3.14
    //常量必須定義
    const PI float64 = 3.14
    var r float64

    fmt.Scan(&r)
    //面積
    s := PI * r * r
    //周長
    l := 2 * PI * r
    //fmt.Println(PI)
    fmt.Printf("面積:%.2f\n", s)
    fmt.Printf("周長:%.2f\n", l)

}

func main() {
    //資料區 -》常量區
    //字面常量
    fmt.Println("hello world")
    fmt.Println(3.14)
    a := 10
    fmt.Println(a + 20)

}

2:字面常量

所謂字面常量(literal),是指程式中硬編碼的常量,如:

func main() {
    //資料區 -》常量區
    //字面常量
    fmt.Println("hello world")
    fmt.Println(3.14)
    a := 10
    fmt.Println(a + 20)

}

3:iota列舉

常量宣告可以使用iota常量生成器初始化,它用於生成一組以相似規則初始化的常量,但是不用每行都寫一遍初始化表示式。
注意:在一個const宣告語句中,在第一個宣告的常量所在的行,iota將會被置為0,然後在每一個有常量宣告的行加一。
具體使用方式如下:

package main

import "fmt"

func main() {

    //iota列舉
    //iota列舉格式如果寫在一行中值相等 如果換行值在上一行加一
    //const (
    //  a    = iota
    //  b, c = iota, iota
    //)

    //只需要對第一個進行iota賦值 後面會依次增長
    //const (
    //  a = iota
    //  b
    //  c
    //  d
    //)
    //在定義iota列舉時可以自定義賦值
    const (
        a = iota
        b = 10
        c = 20
        d
        e
        f = iota
        g
    )
    //a=100//err
    fmt.Println(a)
    fmt.Println(b)
    fmt.Println(c)
    fmt.Println(d)
    fmt.Println(e)
    fmt.Println(f)
    fmt.Println(g)
}

相關文章