Go定义常量和枚举类型

Go定义常量和枚举类型

1、使用const定义常量

package main

func main() {

	const a = 1              //使用const定义常量
	const b, c = "b", "c"    //使用const定义常量
	const filename = "a.txt" //使用const定义常量
}

2、可以定义在包内或者函数体内

package main

import "fmt"

const c = "c" //可以定义在包内,函数体外

func main() {
   const a1, a2 = 10, 5 //可以定义在函数内部
   const s = "sss"      //可以定义在函数内部
   fmt.Println(c)
}

3、使用括号定义一组常量

package main

func main() {

   const (
      a = 1
      b = 2
      c = "c"
      d = 1.5
   ) //使用括号定义一组常量
}

4、可以指定常量的类型

package main

func main() {

   const a int = 1       //可以指定类型
   const b int64 = 2     //可以指定类型
   const c string = "c"  //可以指定类型
   const d float32 = 1.5 //可以指定类型

   const a1 = 1   //可以不指定类型
   const b1 = 2   //可以不指定类型
   const c1 = "c" //可以不指定类型
   const d1 = 1.5 //可以不指定类型

}

5、常量可以作为各种类型使用

package main

import "fmt"

func add(a, b int) int {
	return a + b
}
func add2(a, b float32) float32 {
	return a + b
}

func main() {

	const a1, a2 = 10, 5
	v := add(a1, a2) //可以作为int类型使用
	fmt.Println(v)
	v2 := add2(a1, a2) //可以作为float32使用
	fmt.Println(v2)
}

可以看到a1和a2是常量,可以作为int,也可以作为float32

6、使用iota关键字,定义枚举类型

6.1、自增类型的iota

package main

import "fmt"

func main() {

   const (
      cpp    = iota //0
      python        //1
      java          //2
      golang        //3
   )
   fmt.Println(cpp, python, java, golang)
}

6.2、也可以不用中间某个值,用-代替就行

package main

import "fmt"

func main() {

   const (
      cpp    = iota //0
      python        //1
      _             //2
      golang        //3

   )
   fmt.Println(cpp, python, golang)
}

6.3、可以执行运算

定义b,kb,mb,gb,tb

package main

import "fmt"

func main() {

   const (
      b  = 1 << (10 * iota) //1
      kb                    //1024
      mb                    //1048576
      gb                    //1073741824
      tb                    //1099511627776
   )
   fmt.Println(b, kb, mb, gb, tb)
}
posted @   南风丶轻语  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2021-06-11 Python之pynput监听和控制鼠标键盘
点击右上角即可分享
微信分享提示