摘要:
fmt.Sprintf vs fmt.Println 的区别 特性 fmt.Sprintf fmt.Println 作用 格式化字符串并返回 打印到控制台,不返回 返回值 返回格式化后的字符串 返回写入的字节数 使用场景 需要构建字符串供后续使用 只需要打印输出 是否输出 不直接输出 直接输出到 s 阅读全文
posted @ 2026-03-30 16:36
cyusouyiku
阅读(3)
评论(0)
推荐(0)
摘要:
Go 同步模式详解 11.1 等待组 sync.WaitGroup 的原理是什么 基本概念 sync.WaitGroup 提供了用于创建等待多个并发执行的代码块在达到同步条件后,才可继续执行后续代码的能力。 基本原理 核心操作: Add(delta int):增加同步记录,相当于对运行计数执行 +d 阅读全文
posted @ 2026-03-30 15:32
cyusouyiku
阅读(3)
评论(0)
推荐(0)
摘要:
Go 反射详解 10.1 反射是什么 反射是指计算机程序在运行时可以访问、检测和修改它本身状态或行为的一种能力。 用比喻来说:反射就是程序在运行的时候能够观察并且纠正自己的行为。 本质 反射的本质是程序在运行期探知对象的类型信息和内存结构。 为什么需要反射? 在高级语言(如 Go)中,无法像汇编语言 阅读全文
posted @ 2026-03-30 15:29
cyusouyiku
阅读(2)
评论(0)
推荐(0)
摘要:
Go 计时器详解 9.1 Timer 底层数据结构为什么用四叉堆而非二叉堆 堆的基本概念 堆是一个近似完全二叉树的结构,满足堆的性质: 大顶堆:每个节点的值都大于或等于其左右孩子节点的值 小顶堆:每个节点的值都小于或等于其左右孩子节点的值 注意:堆结构只规定了父子节点之间的大小关系,对兄弟节点的大小 阅读全文
posted @ 2026-03-30 15:26
cyusouyiku
阅读(2)
评论(0)
推荐(0)
摘要:
Go 语言错误处理详解 8.1 接口 error 是什么 在 C 语言中,通常使用整数错误码(errno)来表示函数处理出错,用 -1 表示错误,0 表示正确。 在 Go 中,使用 error 类型来表示错误,它是一个接口类型: type error interface { Error() stri 阅读全文
posted @ 2026-03-30 15:23
cyusouyiku
阅读(4)
评论(0)
推荐(0)
摘要:
7.1 context是什么? 主要是用来在goroutine之间传递上下文,包括:取消信号,超时时间,截至时间,k-v等等 随着context包的引入,标准库中很多接口都加上了context参数,使用 context 几乎成为并发控制和超时控制的标准做法,与它协作的 API 都可以由外部控制执行“ 阅读全文
posted @ 2026-03-30 13:59
cyusouyiku
阅读(7)
评论(0)
推荐(0)
摘要:
对于一个结构体,通过offset函数可以获取结构体成员的偏移量,进而获取成员的地址,读写该地址的内存,就可以改变成员值的目的。 这里有一个内存分配相关的事实:结构体会被分配一块连续的内存,结构体的地址也代表了第一个成员的地址。 unsafe 包是 Go 语言里一个“不讲武德”的工具,它允许程序绕过 阅读全文
posted @ 2026-03-30 13:45
cyusouyiku
阅读(2)
评论(0)
推荐(0)
摘要:
5.1 Go接口和C++接口的区别 接口定义了一种规范,描述了类的行为和功能,而不做具体实现 C++的接口使用抽象类实现,如果类中至少有一个函数被声明为纯虚函数,那么这个类就是抽象类。纯虚函数是 通过声明中“=0”来指定的。设计抽象类的目的是为了给其他类提供一个可以继承的适当的基类,抽象类不能被用于 阅读全文
posted @ 2026-03-30 13:41
cyusouyiku
阅读(2)
评论(0)
推荐(0)
摘要:
4.1 CSP是什么 Go有一句经典的格言:不要通过共享内存通信,要通过通信来实现内存共享,这个是Go的并发哲学,它依赖CSP模型。 CSP 全称是“CommunicatingSequential Processes”,这也是 C.A.R Hoare 在 1978 年发表在 ACM 的一篇论文的主题 阅读全文
posted @ 2026-03-30 13:23
cyusouyiku
阅读(2)
评论(0)
推荐(0)
摘要:
3.1 数组与切片 因为切片比数组好用吗,也更安全,Go推荐使用slice而不是数组。本节内容比较了slice和数组的区别,也研究了slice的一些特定性质。 3.1.1 数组和切片有何异同 切片结构本质是对数组的封装,它描述了一个数组的片段。无论是数组还是切片都可以通过下标来访问单个元素。 数组是 阅读全文
posted @ 2026-03-30 11:02
cyusouyiku
阅读(1)
评论(0)
推荐(0)
摘要:
延迟语句是Go语言里面一个非常有用的关键字,它能把资源释放的语句与申请语句放到距离相近的位置从而减少了资源泄露的情况发生。当然defer用的不对也会造成一堆问题。 2.1 延迟语句 编程的时候,经常需要申请一些资源,比如数据库连接、文件、锁等,这些资源需要在用完之后释放掉,否则会造成内存泄漏。但编程 阅读全文
posted @ 2026-03-30 10:47
cyusouyiku
阅读(3)
评论(0)
推荐(0)
摘要:
在 C/C++ 中,可以通过调用 malloc 函数或使用 new 运算符从堆上分配到一块内存,该内存的使用、销毁的责任都在程序员,一不小心就会发生内存泄漏,使程序员胆战心惊;而在 Go 语言中,程序员们基本上不需要再担心内存泄漏了,虽然 Go 也有内建函数 new,但调用 new 函数得到的内存不 阅读全文
posted @ 2026-03-30 10:31
cyusouyiku
阅读(6)
评论(0)
推荐(0)
摘要:
1.语言基础:逃逸分析,延迟语句,数据容器,通道,接口 2.语言类库:unsafe,context,错误,计时器,反射,同步模式 3.高级特性:调度机制,内存分配机制,垃圾回收机制 阅读全文
posted @ 2026-03-30 10:11
cyusouyiku
阅读(3)
评论(0)
推荐(0)

浙公网安备 33010602011771号