GO-变量、常量与数据类型

1 变量

在 Go 语言中,变量用于存储数据,使用关键字 var 定义变量。变量的类型可以在声明时显式指定,也可以由编译器根据初始值推断。

1.1 变量声明

以下是变量声明的几种方式:

1.1.1 显式声明

1
2
var name string = "Alice"
var age int = 30

1.1.2 类型推断

1
2
var name = "Alice" // 编译器推断类型为 string
var age = 30 // 编译器推断类型为 int

1.1.3 简短声明

1
2
name := "Alice"
age := 30

1.2 变量作用域

Go 语言中,变量的作用域由其声明的位置决定。变量可以是包级的,也可以是局部的。

1
2
3
4
5
6
7
8
var globalVar = "I am global"

func main() {
var localVar = "I am local"
fmt.Println(globalVar)
fmt.Println(localVar)
}

2 常量

常量在 Go 语言中是不可变的值。使用关键字 const 来声明常量,常量可以是字符串、数字或布尔值。

2.1 常量声明

2.1.1 单个常量

1
const pi = 3.14

2.1.3 多个常量

1
2
3
4
5
const (
a = 1
b = 2
c = 3
)

常量的值在编译时确定,并且可以在程序的任何地方使用。

3.数据类型

Go 语言提供了多种内置数据类型,包括基本类型和复合类型。

3.1 基本数据类型

3.1.1 数字类型

  • 整型:int, int8, int16, int32, int64
  • 无符号整型:uint, uint8, uint16, uint32, uint64
  • 浮点型:float32, float64
  • 复数类型:complex64, complex128

3.1.2 布尔类型

1
var isActive bool = true

3.1.3 字符串类型

1
var greeting string = "Hello, World!"

3.2 复合数据类型

Go 语言还提供了多种复合数据类型,用于存储多个值。

3.2.1 数组

1
var numbers [5]int // 定义一个包含5个整数的数组

3.2.2 切片

切片是动态数组的抽象,使用起来更加灵活。

1
var fruits []string = []string{"apple", "banana", "cherry"}

3.2.3 映射

映射(map)是无序的键值对集合。

1
2
3
4
var studentGrades map[string]int = map[string]int{
"Alice": 90,
"Bob": 85,
}