Logo

Golang 协程(Goroutine)

Golang 协程(Goroutine)一、基本概念Go 协程(Goroutine)是 Go 语言并发模型的核心,是一种由运行时管理的轻量级线程。进程、线程和协程的关系:线程可以理解为轻量级的进程协程可以理解为轻量级的线程二、核心特性1. 资源占用极低创建成本低相比线程,协程的创建和销毁成本更低,能...

Golang 包与包管理

Golang 包与包管理一、包的介绍1. 包的定义与作用包是 Go 语言中用于区分命名空间(避免同一文件夹下出现同名文件)和管理项目的机制。创建包的通常方式是:创建一个文件夹,在该文件夹下的 Go 文件中使用 package 关键字声明包名称。2. 包的基本规则通常,文件夹名称和包名称保持一致。同一...

Golang 结构体、方法和接口

Golang 结构体、方法和接口一、结构体(Struct)结构体是 Go 语言中实现面向对象特性(如继承、组合)的重要方式,用于封装数据。1. 定义结构体通过 type 关键字定义,包含多个字段,字段可设置可见性和元信息(标签)。type User struct { Name string &...

Golang 函数及相关特性

Golang 函数及相关特性一、函数基础1. 函数定义(1)基本语法Go 语言中函数定义的基本语法如下:func function_name([parameter list]) [return_types] { // 函数体}(2)三种函数类型普通函数:有明确名称的函数,可直接调用。匿名函数:...

Golang 数组、Slice 和 Map

Golang 数组、Slice 和 Map一、数组(Array)数组是具有固定长度且元素类型相同的序列。1. 声明声明格式为 var 变量名 [长度]元素类型,示例如下:var a [3]int // 声明长度为 3 的 int 类型数组var b [2]string // 声明长度为 2 的...

Golang 流程控制

Golang 流程控制一、条件语句1. if-else 语句(1)基本语法if 布尔表达式1 { // 布尔表达式1为真时执行} else if 布尔表达式2 { // 布尔表达式1为假、布尔表达式2为真时执行} else { // 所有布尔表达式都为假时执行}(2)注意事项Go ...

Golang 数据类型和运算符

Golang 数据类型和运算符一、变量1. 声明同一作用域内不支持重复声明,且 Go 语言的变量声明后必须使用。(1)单个或批量声明// 单变量声明var 变量名 类型// 批量声明var ( 变量名 类型 变量名 类型)(2)短变量声明仅能在函数内部使用,语法:变量名 := 表达式(3...

Golang 标识符、关键字与命名规范

Golang 标识符、关键字与命名规范一、标识符和关键字1. 标识符标识符是 Golang 中对象的名字,其规则如下:组成:由数字、字母和下划线组成(例如 adc123_);只能以字母和下划线开头(例如 abc123、_abc123);且区分大小写。预定义标识符:共 36 个,包含基础数据类型(如 ...

Golang 安装与配置

Golang 安装与配置一、Go 语言简介1. 语言概述Go 是一种静态强类型、编译型语言,语法与 C 相近。2. 功能支持垃圾回收(GC)结构形态CSP 风格并发计算3. 语言特点大厂背书天生支持并发语法简单,容易上手内置 runtime,支持垃圾回收可直接编译成机器码,不依赖其他库丰富的标准库跨...

MySQL InnoDB 事务原理深度解析

MySQL InnoDB 事务原理深度解析事务是数据库管理系统(DBMS)处理数据的基本逻辑单元,核心价值在于保障并发场景下数据操作的一致性与可靠性。MySQL InnoDB 存储引擎作为事务支持的核心载体,通过精密的日志机制、锁机制与多版本并发控制(MVCC),完整实现了事务的 ACID 特性。本...