Go基础之变量和基本数据类型

变量

3 种声明方式

  1. var name string

  2. var name = "go大法好"

  3. 函数内部专属 name := "go大法好"

匿名变量

当有些数据必须用变量接收但是又不使用,就可以用_来接收这个值

常量

const PI = 3.1415925

const UserIsNotExistErr = 40000

iota 实现枚举

两个要点:

  1. iotaconst关键字出现时将被重置为 0
  2. const中每新增一行常量声明, iota累加 1

基本数据类型

整型

  1. 无符号整型: uint8 uint16 uint32 uint64
  2. 有符号整型: int8 int16 int32 int64
  3. int: 具体是 32 位还是 64 位看操作系统
  4. uintptr: 表示指针

浮点型

float32float64

Go 语言中浮点数默认是float64

复数

complex128complex64

布尔值

truefalse

不能和其他的类型做转换

字符串

常用方法

字符串不能修改

byte 和 rune 类型

都属于类型别名

1
2
3
4
5
6
7
8
s1 := "hello"
s2 := "无限有无又有限"
for _, v := range s1 {
fmt.Printf("%c %T \n", v, v)
}
for _, v := range s2 {
fmt.Printf("%c %T \n", v, v)
}

字符串、字符、字节

字符串: 双引号包裹的是字符串

字符: 单引号包裹的是字符, 单个字母, 单个符号, 单个文字

字节: 1byte = 8bit

go 语言中字符串都是 UTF8 编码的, 一个常用汉字一般占用 3 个字节

其他进制数

1
2
3
4
5
6
7
// 八进制数
var n1 = 0777
// 十六进制数
var n2 = 0xff
fmt.Println(n1, n2)
fmt.Printf("%o: %d\n", n1, n1)
fmt.Printf("%x: %d\n", n2, n2)

学习资料

  1. https://www.bilibili.com/video/BV1fz4y1m7Pm/
  2. https://www.liwenzhou.com/archives/

我的环境

  • Mac
  • go1.19
  • GoLand