Go基礎 - 2 變量,常量

變量
  • 已聲明但未使用的變量會在編譯階段報錯
package main

import "fmt"

func main() {

    var a int = 1
    fmt.Println(a)

    //var可以聲明一個或多個變量
    var b, c string = "a", "b"
    fmt.Println(b, c)

    //聲明為沒有相應初始化的變量是零值的(int的零值是0, string的零值是空)
    var d int
    fmt.Println(d)

    //Go將推斷初始化變量的類型
    //(:=)簡短變量聲明一般用于局部變量的聲明和初始化,var往往是用在需要先指定變量類型稍后再賦值的
    //不過它有一個限制,那就是它只能用在函數內部;在函數外部使用則會無法編譯通過,所以一般用var方式來定義全局變量
    e := true
    fmt.Println(e)

    //_(下劃線)是個特殊的變量名,任何賦予它的值都會被丟棄
    _, f := 7, 8
    fmt.Println(f)
}
1
a b
0
true
8
常量
// Go支持字符, 字符串, 布爾值和數值的常量
package main

import "fmt"

//用 const 關鍵字定義常量
const a string = "A"

func main() {

    fmt.Println(a)

    //const 可以定義一個或多個常量
    const b, c = 1, 3
    fmt.Println(b, c)

    //表達式里可以有常量, 但不能有變量
    const d = 4 - b
    fmt.Println(d)

}
A
1 3
3
常量計數器
  • iota是常量的計數器, 從0開始, 組中每定義1個常量自動遞增1
  • 每遇到一個const關鍵字, iota就會重置為0
package main

import "fmt"

const (
    GB int = 1 << (iota * 10)
    MB int = 1 << (iota * 10)
    KB int = 1 << (iota * 10)
)

const (
    a int = iota
    b
)

func main() {

    fmt.Println(GB, MB, KB)
    fmt.Println(a, b)

}
1 1024 1048576
0 1
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容