GO学习——常量

//常量

const num int = 10//int 可以省略

fmt.Println(num)

//多个相同类型的声明可以简写为:

//const name1, name2 = value1, value2

const i,j = 1,2

fmt.Println(i,j)

//不同类型的

const a1,a2,a3 = 1,false,"hello"

fmt.Println(a1,a2,a3,unsafe.Sizeof(a3))//这里Sizeof(a3)是16

//常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过

const (

a = "abc"

b = len(a)

c = unsafe.Sizeof(a)//这里Sizeof(c)是16

)

fmt.Println(a,b,c)

//const a,b,c = "abc",len(a),unsafe.Sizeof(a)这样是会报错的

const用作枚举:a=0, b=1, c=2 iota行索引
const (
    a = iota//编译器默认重置iota特殊值为0
    b = iota
    c = iota
)

等价于

const(

a = iota

b

c

)

    const (
            a = iota   //0
            b          //1
            c          //2
            d = "ha"   //独立值,iota += 1
            e          //"ha"   iota += 1
            f = 100    //iota +=1
            g          //100  iota +=1
            h = iota   //7,恢复计数
            i          //8
    )
    fmt.Println(a,b,c,d,e,f,g,h,i)

输出结果为:

0 1 2 ha ha 100 100 7 8

注意e和前面的d的值相同,但是iota值加一了

测试代码:

package main

import "fmt"
import "unsafe"
//常量
func main(){
  const num int = 10//int 可以省略
  fmt.Println(num)
  //多个相同类型的声明可以简写为:
  //const name1, name2 = value1, value2
  const i,j = 1,2
  fmt.Println(i,j)
  //不同类型的
  const a1,a2,a3 = 1,false,"hello"
  fmt.Println(a1,a2,a3,unsafe.Sizeof(a3))//这里Sizeof(a3)是16
  //常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过
  const (
    a = "abc"
    b = len(a)
    c = unsafe.Sizeof(a)//这里Sizeof(c)是16
)
  fmt.Println(a,b,c)
  //const a,b,c = "abc",len(a),unsafe.Sizeof(a)这样是会报错的


};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值