Go的常量和变量

    xiaoxiao2022-07-03  116

    Go的常量和变量

    1,常量

    常量是代码中常用,且不会被修改的值. 常量中数据类型只能是字符串,数字和bool类型

    // 单个常量赋值 const a int = 1 // 编译器自动判断类型 const a = 1 // 多个常量赋值 const a,b int = 1 const ( b=2 c=3 d=4 ) fmt.Println(b,c,d) //2 3 4 // 定义常量时,如果不写下面的值,默认和上面相同 const ( b=2 c d ) fmt.Println(b,c,d) //2 2 2 // 不同类型的常量不能在同一行赋值 // const a int,b string=1,"a" 是不允许的 // 但是编译器自动判断的创建是可以的 const a,b = 1,"a"

    iota是一种特殊的常量,可以视作可以被编译器修改的常量,多用作枚举. 每个iota初始都视作0 ,然后每次使用都会被加1

    const ( a=iota b=iota c=iota ) 或 const ( a=iota b c ) fmt.Println(a,b,c) //0 1 2

    当iota自增中断,需重新启用恢复,计算时会包含跳过的值 有点类似const里面以0开头的行数计算

    const ( a=iota b c d="aaa" e f=iota g ) fmt.Println(a,b,c,d,e,f,g) //0 1 2 aaa aaa 5 6

    2,变量

    变量是存储结果的量,根据变量名修行访问和修改

    // 声明一个变量 var a int // 声明多个变量 var a,b int // 声明多个变量(多用于全局变量) var ( a string b int )

    如果不初始化,单声明一个变量,初始值为系统默认值 string为"", int为0, boolean为false, 其他多为nil 详细信息翻阅官方文档为准

    // 创建一个变量,不指定类型,由系统自动判断 var a="abc" a:=abc // 创建多个变量 var a,b,c=1,2,3 a,b,c:=1,2,3

    注意

    不论是常量还是变量,创建之后必须使用,不然会报错 变量和常量可以用一些内置函数进行赋值

    const a = "abcde" const b = len(a) //长度 const c = cap(a) //容量 const d = unsafe.Sizeof(a) //数据类型的大小 fmt.Println(a,b,c,d)
    最新回复(0)