乔克视界 乔克视界
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档

乔克

云原生爱好者
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档
  • Docker

  • Golang

    • Golang基础知识

      • 开发环境搭建
      • 常量与变量
        • 标识符和关键字
          • 标识符
          • 关键字
        • 变量
          • 变量声明
          • 匿名变量
          • 注意事项
        • 常量
          • iota
      • 基本数据类型
      • 复合数据类型
      • 流程控制
      • 运算符
      • 位运算符详解
      • 指针
      • map
      • 函数
      • defer
      • 类型别名与自定义类型
      • 结构体
      • 接口
      • 包
      • 文件操作
      • 反射
      • 并发
      • socket网络编程
      • HTTP网络编程
      • 单元测试
      • 基准测试
      • 并发测试
      • 示例函数
      • 性能优化
      • go module
      • 在Go中使用Makefile
      • 部署Go项目
    • Golang进阶知识

    • Golang常用包

  • AIOps

  • 专栏
  • Golang
  • Golang基础知识
乔克
2025-07-13
目录

常量与变量

# 标识符和关键字

# 标识符

标识符只能以字母和_组成,并且只能以字母和_开头。

# 关键字

Go 中有 25 个关键字:

    break        default      func         interface    select
    case         defer        go           map          struct
    chan         else         goto         package      switch
    const        fallthrough  if           range        type
    continue     for          import       return       var
1
2
3
4
5

# 变量

# 变量声明

变量需要先声明,再使用。其语法如下:

var name string
1

其数据类型有:

  • string,字符串
  • int,整型
  • bool,布尔型

上面这种是一个变量一个变量的声明,go 也有批量声明方式:

var (
    name string
    age int
    isBoy bool
)
1
2
3
4
5

变量的初始化:

func main(){
    name = "joker"
    age = 18
    isBoy = true
}
1
2
3
4
5

注意:

Go 语言中非全局变量声明了必须使用,不使用则编译不过去。

变量还可以声明的同时并赋值:

var name string = "Joker"
1

也可以根据值来判断变量是什么类型:

var age = 14
1

还可以用简短变量声明(只能在函数体里使用):

name := "Joker"
fmt.Print(name)
1
2

# 匿名变量

匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。

匿名变量用_来表示,如下:

func foo(int, string){
    return 10, "Joker"
}
func main(){
    x, _ = foo()
    _, y = foo()
}
1
2
3
4
5
6
7

# 注意事项

  • 函数外的每个语句都必须以关键字开头,例如var func 等;
  • :=不能使用在函数体外;
  • _ 多用于占位符,表示忽略值;
  • 同一个作用域中不能重复声明同名的变量;

# 常量

常量是恒定不变的值,声明常量的关键字是const 。

常量在定义的时候必须赋值,如下:

const c1 = 3.14159
1

多个常量也可以一起声明,如下:

const (
    c1 = 3.14
    c2 = 0.68
)
1
2
3
4

在批量声明常量的时候,如果其中有一个常量没有赋值,其内容和上一个常量一样,如下 c2,c3 的内容也为 200:

const (
	c1 = 200
	c2
	c3
)
1
2
3
4
5

# iota

iota 是 go 语言中的一种常量计数器,只能在常量的表达式中使用。

iota 在const 关键字出现的时候被重置为 0,const 中的变量每声明一行常量声明将使iota 计数一次,iota 可理解为是const 语句块中的行索引,使用iota 能简化定义,在定义枚举时很有用,如下:

const (
	n1 = iota		// n1=0
	n2				// n2=1
	n3				// n3=2
)
1
2
3
4
5

几种常见的用法:

(1)使用_跳过某些值

const (
		n1 = iota //0
		n2        //1
		_
		n4        //3
	)
1
2
3
4
5
6

(2)iota声明中间插队

const (
		n1 = iota //0
		n2 = 100  //100
		n3 = iota //2
		n4        //3
	)
	const n5 = iota //0
1
2
3
4
5
6
7

(3)定义数量级

const (
		_  = iota
		KB = 1 << (10 * iota)
		MB = 1 << (10 * iota)
		GB = 1 << (10 * iota)
		TB = 1 << (10 * iota)
		PB = 1 << (10 * iota)
	)
1
2
3
4
5
6
7
8

(4)、多个iota定义在一行

const (
		a, b = iota + 1, iota + 2 //1,2
		c, d                      //2,3
		e, f                      //3,4
	)
1
2
3
4
5
上次更新: 2025/07/18, 11:04:43
开发环境搭建
基本数据类型

← 开发环境搭建 基本数据类型→

最近更新
01
2025年,SRE在企业中可以做哪些事
07-18
02
SRE 如何提升自己在团队中的影响力
07-18
03
使用Go开发MCP服务
07-18
更多文章>
Theme by Vdoing | Copyright © 2019-2025 乔克 | MIT License | 渝ICP备20002153号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式