Skip to main content
此页存在 AI 生成内容。

在本页

在 GoLang,变量类型基本和 C++ 没什么特别突出的区分,这里简单讲解基础类型,写的时候多使用就自然而然的记住了。重点掌握:
  • int
  • float64
  • bool
  • string
  • slice
  • map
  • struct

声明变量

在 Go 中的局部函数中,声明了变量就一定要使用。注意全局变量和局部变量!
首先需要知道如何声明变量。
  • 声明变量:
var [变量名] [变量类型]
  • 声明变量并赋值:
var [变量名] [变量类型] = []
  • 此外,函数的返回值也能作为值 例如前面的 quote 代码中
fmt.Println(quote.Go())
quote.Go() 即作为返回值给 Println

Go 中的变量类型

Go 的变量类型大致可以分为以下几类:基础类型复合类型引用类型接口类型函数类型通道类型

基础类型(Basic Types)

基础类型是 Go 中最常用的数据类型,用于存储简单数据。

整数类型

用于存储整数。
类型位数
int88 位
int1616 位
int3232 位
int6464 位
int平台相关(32/64 位)
var age int = 18
var score int64 = 100

fmt.Println(age)
fmt.Println(score)
特点:
  • 存储整数
  • 支持正数、负数、0
  • int 最常使用

无符号整数 uint

只能存储非负整数。
var count uint = 100
var id uint64 = 99999
特点:
  • 不允许负数
  • 存储范围比同位数整数更大

浮点类型

用于存储小数。
var price float32 = 9.99
var salary float64 = 12345.6789

fmt.Println(price)
fmt.Println(salary)
特点:
  • float32 精度较低
  • float64 为默认推荐类型

布尔类型

用于表示真或假。
var isLogin bool = true
var isAdmin bool = false

fmt.Println(isLogin)
特点:
  • 只有两个值:
    • true
    • false
  • 常用于条件判断

字符类型

Go 使用 rune 表示 Unicode 字符。
var ch rune = ''

fmt.Println(ch)
fmt.Printf("%c\n", ch)
特点:
  • 本质是 int32
  • 支持中文、英文及各种 Unicode 字符

字符串类型

用于存储文本内容。
var name string = "Golang"

fmt.Println(name)
特点:
  • 使用双引号包裹
  • 字符串不可修改(Immutable)

复合类型(Composite Types)

复合类型由多个数据组合而成。

数组(Array)

固定长度的数据集合。
var nums [3]int = [3]int{1, 2, 3}

fmt.Println(nums)
特点:
  • 长度固定
  • 属于值类型
  • 长度也是类型的一部分

切片(Slice)

动态长度数组。
nums := []int{1, 2, 3}

nums = append(nums, 4)

fmt.Println(nums)
特点:
  • 长度可变
  • 底层基于数组实现
  • Go 开发中使用非常频繁

结构体(Struct)

用于封装多个字段。
type User struct {
    Name string
    Age  int
}

user := User{
    Name: "Tom",
    Age:  20,
}

fmt.Println(user)
特点:
  • 类似其他语言中的对象
  • 支持方法绑定
  • Go 面向对象的核心之一

引用类型(Reference Types)

引用类型存储的是数据地址。

Map

键值对集合。
user := map[string]int{
    "Tom": 20,
    "Jack": 18,
}

fmt.Println(user["Tom"])
特点:
  • 类似字典(Dictionary)
  • 查询效率高
  • Key 不允许重复

Pointer(指针)

存储变量地址。
var age int = 18

var p *int = &age

fmt.Println(*p)
特点:
  • 使用 & 获取地址
  • 使用 * 解引用
  • 可减少数据复制开销

接口类型(Interface)

接口定义行为规范。
type Speaker interface {
    Speak()
}
特点:
  • 不关心具体实现
  • 满足方法即可实现接口
  • Go 多态的核心机制

函数类型(Function)

函数本身也是一种类型。
var add func(int, int) int

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

fmt.Println(add(1, 2))
特点:
  • 函数可以赋值给变量
  • 可以作为参数传递
  • 支持闭包

通道类型(Channel)

用于 Goroutine 之间通信。
ch := make(chan int)

go func() {
    ch <- 100
}()

value := <-ch

fmt.Println(value)
特点:
  • Go 并发编程核心
  • 天然支持协程通信
  • 避免共享内存带来的复杂问题

类型分类总结

分类常见类型
基础类型int、float64、bool、string、rune
复合类型array、slice、struct
引用类型map、pointer
接口类型interface
函数类型func
通道类型chan
Last modified on June 24, 2026