当前位置: 首页 > article >正文

【Golang学习之旅】Go 语言数据类型详解(string、slice、map等)

文章目录

    • 前言
    • 1. Go语言数据类型概览
    • 2. Go语言基本数据类型
      • 2.1 整型(int,uint,float)
      • 2.2 布尔类型(bool)
      • 2.3 字符串(string)
    • 3. Go 语言复合数据类型
      • 3.1 数组(Array)
      • 3.2 切片(Slice)
      • 3.3 映射(Map)
    • 4. 结构体(Struct)
    • 5. 指针(Pointer)
    • 总结 & 进阶学习方向

前言

✅ 适合人群:Golang 新手 | 后端开发者 | 面试求职者
✅ 文章亮点:超详细解析 + 代码示例 + 实战应用
✅ 目标:掌握 Go 语言核心数据类型,助你写出高效、稳定的 Go 代码!

1. Go语言数据类型概览

Go语言是一种静态强类型语言,所有变量在使用前都必须指定类型,类型一旦确定,就不能随意更改。Go语言的数据类型大致分为以下几类:

类别数据类型说明
基本类型boolstringintfloat常见的基本数据类型
复合类型array(数组)、slice(切片)存储多个元素的集合
映射类型map(哈希表)键值对存储结构
结构体struct自定义数据结构
接口类型interface{}可用于实现多态
指针类型*T存储变量地址
通道类型chan并发通信机制

🔹 为什么要了解 Go 语言数据类型?
✅ 代码更安全(静态类型检查,减少错误)
✅ 性能更优(高效的内存管理)
✅ 更易维护(强类型保证代码稳定性)

2. Go语言基本数据类型

2.1 整型(int,uint,float)

Go语言支持有符号整数无符号整数

var a int = 10  // 标准int类型(与cpu位数有关)
var b int8 = 127  // 8位整数(-127 ~ 127)
var c uint16 = 65535 // 16位无符号整数(0 ~ 65535)
var d int32 = 2147483647 // 32位整数
var e int64 = 9223372036854775807  // 64位整数

🔹 Go 语言的整数类型取值范围:

类别大小取值范围
int88位-128 ~ 127
uint88位0 ~ 255
int1616位-32,768 ~ 32,767
uint1616位0 ~ 65,535
int3232位-2,147,483,648 ~ 2,147,483,647
uint3232 位0 ~ 4,294,967,295
int6464 位-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
uint6464位0 ~ 18,446,744,073,709,551,615
浮点数(float32、float64)
var pi float32 = 3.1415926  // 32位浮点数
var e float64 = 2.718281828 // 64位浮点数(推荐) 

2.2 布尔类型(bool)

var isGoFun bool = true
fmt.Println(isGoFun) // 输出: true

🔹 布尔值只有 truefalse,不能与 01 互换。

2.3 字符串(string)

Go 语言的 string 是 不可变 的 UTF-8 编码字符串,默认使用双引号"" 定义。

var hello string = "Hello, Golang!"
fmt.Println(hello)

🔹 多行字符串(使用反引号 `)

var multiLine = `第一行
第二行
第三行`
fmt.Println(multiLine)

🔹 字符串拼接

s1 := "Hello"
s2 := "Go"
result := s1 + ", " + s2 + "!"
fmt.Println(result) // 输出: Hello, Go!

3. Go 语言复合数据类型

3.1 数组(Array)

Go 语言数组是 固定大小的,一旦定义后,不能扩展。

var arr [3]int = [3]int{1, 2, 3} // 方式1
arr2 := [...]int{4, 5, 6}        // 方式2
fmt.Println(arr, arr2) 

🔹 遍历数组

for i, v := range arr {
    fmt.Printf("索引: %d, 值: %d\n", i, v)
}

3.2 切片(Slice)

🔹 切片是 Go 语言最常用的数据结构,类似动态数组,可变长度。

slice := []int{1, 2, 3}
slice = append(slice, 4, 5) // 添加元素
fmt.Println(slice) // [1 2 3 4 5]

🔹 切片截取

subSlice := slice[1:3] // 获取索引 1 到 3 之间的元素
fmt.Println(subSlice) // [2 3]

3.3 映射(Map)

🔹 Map 是 Go 语言中的哈希表(键值对存储)

person := map[string]int{"Alice": 25, "Bob": 30}
fmt.Println(person["Alice"]) // 输出 25

person["Charlie"] = 35 // 添加元素
delete(person, "Bob") // 删除元素

🔹 遍历 Map

for k, v := range person {
    fmt.Printf("Key: %s, Value: %d\n", k, v)
}

4. 结构体(Struct)

🔹 Go 语言支持自定义数据类型(类似面向对象的类)

type Person struct {
    Name string
    Age  int
}

func main() {
    p := Person{Name: "Alice", Age: 25}
    fmt.Println(p.Name, p.Age) // Alice 25
}

5. 指针(Pointer)

🔹 Go 语言的指针用于存储变量的地址

var a int = 42
var p *int = &a // 指针 p 指向变量 a
fmt.Println(*p) // 通过指针解引用,输出 42

总结 & 进阶学习方向

📌 本篇文章介绍了 Go 语言的常见数据类型,包括 string、slice、map 等,帮助你掌握 Go 语言基础。
📌 进阶学习:Go 并发(Goroutine)、微服务(gRPC)、Web 开发(Gin 框架)
📌 学习资源:Go 官方文档


http://www.kler.cn/a/533587.html

相关文章:

  • 互联网行业常用12个数据分析指标和八大模型
  • 【Linux系统】信号:再谈OS与内核区、信号捕捉、重入函数与 volatile
  • 【单细胞-第三节 多样本数据分析】
  • 2024美团秋招硬件开发笔试真题及答案解析
  • Kamailio 不通过 dmq 实现注册复制功能
  • FFmpeg:多媒体处理的瑞士军刀
  • Typora免费使用
  • GB/T 44721-2024 与 L3 自动驾驶:自动驾驶新时代的基石与指引
  • 30、Flink中操作已经配置好的远程文件系统
  • PyTorch Geometric(PyG)机器学习实战
  • deepseek设计硬件电路之设计一个pA级电流测量电路
  • Android 常用命令和工具解析之Battery Historian
  • 基于HTML生成网页有什么优势
  • Java—不可变集合
  • 最新黑马商城运行问题解决
  • 优化数据库结构
  • 服务器安装了esxi,通过esxi创建了N个虚拟机,如何实现类似于阿里云或者腾讯云的类似的云端管理虚拟机监控虚拟机的系统,要求开源,中文界面
  • 【Block总结】MDCR,多尺度深度可分离卷积,捕捉不同感受野范围的空间特征
  • LabVIEW图像采集与应变场测量系统
  • 【算法】动态规划专题③ ——二维DP python
  • 【PromptCoder + Bolt.new】Cascade模式自动生成页面和对应的路由
  • 10.单例模式 (Singleton Pattern)
  • 防火墙策略
  • react的antd表格数据回显在form表单中
  • 2024 TCSVT: LS2T2NN
  • 深入解析 Chrome 浏览器的多进程架构:标签页是进程还是线程?(中英双语)