go变量常量【golang笔记】原创

原创
小哥 3年前 (2022-10-22) 阅读数 49 #大杂烩

新建文件 var.go

package main

/*
    四个变量的声明。
*/

import (
    "fmt"
)

//声明全局变量 main方法1.方法,即第三种方法,是可能的。
var gA int = 100
var gB = 200

//使用方法四来声明全局变量。
// := 只能在以下位置使用 要声明的函数体
//gC := 200

func main() {
    //方法1:声明一个变量 缺省值为0
    var a int
    fmt.Println("a = ", a)   // a =  0
    fmt.Printf("type of a = %T

", a) //type of a = int

    //方法2:声明变量并初始化值
    var b int = 100
    fmt.Println("b = ", b)  //b =  100
    fmt.Printf("type of b = %T

", b) //type of b = int

    var bb string = "abcd" 
    fmt.Printf("bb = %s, type of bb = %T

", bb, bb) //bb = abcd, type of bb = string

    //方法三:在初始化时,可以省略数据类型,自动将当前变量的数据类型进行取值匹配。
    var c = 100
    fmt.Println("c = ", c)  //c =  100
    fmt.Printf("type of c = %T

", c) //type of c = int

    var cc = "abcd"
    fmt.Printf("cc = %s, type of cc = %T

", cc, cc) //cc = abcd, type of cc = string

    //方法四:(常用方法) 省去var关键词,直接自动匹配。
    e := 100
    fmt.Println("e = ", e)  //e =  100
    fmt.Printf("type of e = %T

", e) //type of e = int

    f := "abcd"
    fmt.Println("f = ", f)  //f =  abcd
    fmt.Printf("type of f = %T

", f) //type of f = string

    g := 3.14
    fmt.Println("g = ", g)  //g =  3.14
    fmt.Printf("type of g = %T

", g) //type of g = float64

    // =====
    fmt.Println("gA = ", gA, ", gB = ", gB) //gA =  100 , gB =  200
    //fmt.Println("gC = ", gC)

    // 声明多个变量
    var xx, yy int = 100, 200
    fmt.Println("xx = ", xx, ", yy = ", yy)  //xx =  100 , yy =  200
    var kk, ll = 100, "Aceld"
    fmt.Println("kk = ", kk, ", ll = ", ll) //kk =  100 , ll =  Aceld

    //多行多变量声明
    var (
        vv int  = 100
        jj bool = true
    )
    fmt.Println("vv = ", vv, ", jj = ", jj)//vv =  100 , jj =  true
}

运行效果 执行 go run var.go

a =  0
type of a = int
b =  100
type of b = int
bb = abcd, type of bb = string
c =  100
type of c = int
cc = abcd, type of cc = string
e =  100
type of e = int
f =  abcd
type of f = string
g =  3.14
type of g = float64
gA =  100 , gB =  200
xx =  100 , yy =  200
kk =  100 , ll =  Aceld
vv =  100 , jj =  true

常量操作

package main

import "fmt"

//const 定义枚举类型
const (
    //可以在const() 添加关键字 iota, 每行的iota都会累加1, 第一行的iota缺省值为0
    BEIJING = 10*iota    //iota = 0
    SHANGHAI          //iota = 1
    SHENZHEN          //iota = 2
)

const (
    a, b = iota+1, iota+2 // iota = 0, a = iota + 1, b = iota + 2, a = 1, b = 2
    c, d                  // iota = 1, c = iota + 1, d = iota + 2, c = 2, d = 3
    e, f                  // iota = 2, e = iota + 1, f = iota + 2, e = 3, f = 4

    g, h = iota * 2, iota *3  // iota = 3, g = iota * 2, h = iota * 3, g = 6, h = 9 
    i, k                       // iota = 4, i = iota * 2, k = iota * 3 , i = 8, k = 12
)

func main() {
    //常量(只读属性)
    const length int = 10

    fmt.Println("length = ", length)

    //length = 100 //不允许修改常量。

    fmt.Println("BEIJIGN = ", BEIJING)
    fmt.Println("SHANGHAI = ", SHANGHAI)
    fmt.Println("SHENZHEN = ", SHENZHEN)

    fmt.Println("a = ", a, "b = ", b)
    fmt.Println("c = ", c, "d = ", d)
    fmt.Println("e = ", e, "f = ", f)

    fmt.Println("g = ", g, "h = ", h)
    fmt.Println("i = ", i, "k = ", k)

    // iota 只能合作const() 一起使用, iota只有在const执行累积效果。
    //var a int = iota 

}

输出效果

length =  10
BEIJIGN =  0
SHANGHAI =  10
SHENZHEN =  20
a =  1 b =  2
c =  2 d =  3
e =  3 f =  4
g =  6 h =  9
i =  8 k =  12
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门