最新文章

什么是闭包

引言:需求场景分析 老板要求创建一个函数,每次调用使变量减一。 常见错误方案 // 全局变量方案(存在并发安全问题) var sum = 100 func main() { sum-- fmt.Println(sum) } // 文件存储方案(效率低下) package main

linshu 2025-07-09

golang的反射与断言

核心概念 反射 (Reflection) 允许运行时动态查询和操作对象的类型和值 通过 reflect.TypeOf 和 reflect.ValueOf 获取类型和值信息 提供运行时动态获取类型和修改值的能力 灵活性高但性能较低 类型断言 (Type Assertion)

linshu 2025-07-09

golang如何实现“面向对象”

封装:控制数据访问权限 package main import "fmt" type Person struct { name string // 私有字段 Age int // 公有字段 } // 设置私有字段的方法 func (p *Person) SetName(

linshu 2025-07-09

golang中的defer

基本概念 defer是Go语言中的一个关键字,作用在函数作用域中,用于在函数结束之前执行特定代码逻辑。 核心特性 1. 多个defer的执行顺序 多个defer之间采用栈结构(FILO):先进后出

linshu 2025-07-09

go语言的逃逸分析

概述 栈的作用域是函数,当函数执行结束后,栈的内存会被销毁。堆的作用域通常是跨函数的。当一个变量在函数外部被引用时,需要把变量转移到堆上,我们称之为逃逸。 在 Go 语言中访问引用对象时,实际上是通过指针间接访问。如果再访问里面的引用成员,往往会造成二次访问,这种操作容易导致不必要的逃逸现象。因此在

linshu 2025-07-09

gmp模型的作用

进程的演变 早期的单进程系统 每一个程序就是一个进程,直到程序运行完才能执行下一个进程 缺点: 进程阻塞带来的 CPU 时间浪费 单一的执行流程

linshu 2025-07-09

单例模式的推导

核心思想 保证一个类永远只能有一个对象、且该对象的功能依然能被其他模块使用 单例模式的逻辑推演 package main import "fmt" /* 三个要点: 1.某个类只能有一个实例; 2.它须自行创建这个实例; 3.它须自行向整个系统提供这个实例。 保证一个类永远只能有

linshu 2025-07-09

Hello Halo

如果你看到了这一篇文章,那么证明你已经安装成功了,感谢使用 Halo 进行创作,希望能够使用愉快。

linshu 默认分类 2025-07-09