soroqer

23
获赞数
6
关注数
6
粉丝数
郑州
IP 属地河南
2022-02-25 加入
浏览 2.3k
╭╮╱╭┳━━━┳╮╱╭╮
┃┃╱┃┃╭━╮┃┃╱┃┃
┃╰━╯┃┃┃┃┃╰━╯┃
╰━━╮┃┃┃┃┣━━╮┃
╱╱╱┃┃╰━╯┃╱╱┃┃
个人简介什么都没有
30 声望|新手
go
23
interface
11
参数传递
8
stack
6
heap
6
黄金勋章
暂未获得该勋章
如何获得
白银勋章
暂未获得该勋章
如何获得
个人动态
  • 发布了文章4 月 22 日
    Git 如何取消文件追踪
    项目刚建好,代码写得飞快,一连串 git add .、git commit、git push。 推送完成后打开远程仓库,却发现一堆不应该提交的文件也跟着进去了: 编译产物、依赖目录、本地配置文件……
  • 发布了文章2025-11-14
    Go语言面向对象特性之--多态与继承的实现机制
    面向对象编程的核心范式围绕封装、继承与多态展开。传统语言(如Java、C++)通过类与继承体系实现这一目标:类定义数据结构与方法,继承建立类型层级,多态通过父类引用指向子类实例实现。Go语言在设计初期即明确拒绝传统类继承模型,其官方文档指出:“Go不是传统意...
  • 发布了文章2025-10-28
    WebSocket vs gRPC Stream:深度对比两种流式通信技术
    在实时通信与流式数据传输领域,WebSocket与gRPC Stream是最常被提及的两项技术。本文将从协议设计、通信模型、适用场景等维度展开深度对比,帮助开发者理解两者的本质差异与选择逻辑。
  • 发布了文章2025-09-25
    断言与反射--Golang
    在 Go 语言中,类型断言(Type Assertion) 和 反射(Reflection) 是两种处理动态类型的核心机制,分别用于不同场景下的类型操作。前者是静态类型系统在运行时的补充,后者则提供了更底层的动态类型检查和操作能力。
  • 发布了文章2025-09-23
    标签(Label)的使用--Golang
    在 Go 语言中,标签(Label) 是一种用于控制流语句(如 break、continue、goto)的目标定位机制。它允许你显式指定代码执行的跳转位置,尤其在处理嵌套循环、多层条件分支或需要精确控制程序流时非常有用。以下从语法、作用域、使用场景、注意事项等方面详细说明。
  • 发布了文章2025-08-17
    当接口实例被当作参数传递的时候,传递的是什么?- Golang
    在 Go 语言中,接口变量本身是值类型(Value Type),而非引用类型(Reference Type)。因此,当接口类型(包括空接口 interface{} 和非空接口)被作为参数传递时,传递的本质是 接口变量的副本,其底层结构根据接口类型的不同分为 eface(空接口)或 iface(非空接...
  • 发布了文章2025-08-12
    Go 堆与栈内存:从底层机制到性能优化
    在开发中,我们每天都在与内存打交道——声明变量、创建结构体、操作切片与映射。但是否真正理解:变量何时分配在栈?何时逃逸到堆?Go 的栈如何动态扩展?堆内存又如何被 GC 高效回收?这些问题,可以通过 go build -gcflags="-m" 输出的逃逸分析日志得到答...
  • 发布了文章2025-08-11
    Goroutine 的创建与调度:从 GPM 模型到 go 关键字的底层逻辑
    在理解 Goroutine 之前,我们先回顾一下的传统并发模型。在多数编程语言(如 Java、C++)中,并发主要依赖「线程」(Thread)实现。但线程存在两个问题:
  • 发布了文章2025-08-06
    interface 的源码实现(iface 与 eface)- Golang
    要深入理解 Go 接口的底层实现,必须从 接口的底层数据结构(iface 和 eface)、动态类型与值的存储方式,以及 运行时如何通过这些结构实现方法调用 三个层面入手。以下是结合 Go 源码(以 1.21 版本为例)的详细解析。
  • 发布了文章2025-08-06
    interface 的源码实现(iface 与 eface)- Golang
    要深入理解 Go 接口的底层实现,必须从 接口的底层数据结构(iface 和 eface)、动态类型与值的存储方式,以及 运行时如何通过这些结构实现方法调用 三个层面入手。以下是结合 Go 源码(以 1.21 版本为例)的详细解析。
  • 关注了问题2025-08-06
    Golang设计思想中的简洁性原则是怎样的?
  • 发布了文章2025-08-05
    select 的基本使用及其特性-Golang
    在 Go 语言中,select 语句是专门用于监听多个 Channel 操作的控制结构,其核心作用是协调多个 Channel 的读写事件,确保程序能高效响应任意一个 Channel 的就绪状态。多与 for 循环配合使用,进行监听。以下是其详细用法和常见场景:
  • 发布了文章2025-07-28
    Channel 的源码分析与高效使用-Golang 🔥
    “不要通过共享内存来通信,而要通过通信来共享内存”。这句话精准概括了 Go 并发模型的核心哲学——而承载这一哲学的核心原语,正是 channel(通道)。
  • 发布了文章2025-07-27
    unsafe.Pointer 与 uintptr-Golang
    unsafe 包提供了绕过类型系统的底层内存操作能力,用于实现高性能、跨语言交互或底层数据结构。其中最核心的类型是 unsafe.Pointer 和 uintptr。
  • 发布了文章2025-07-26
    []A 与 []*A 的内存分配、生命周期-Golang 🔥
    一、内存分配无论 []A 还是 []*A,切片本身的元数据(切片头)结构是完全相同的。切片头是一个包含 3 个字段的结构体:ptr:指向底层数组的指针(8 字节)。len:切片长度(8 字节)。cap:切片容量(8 字节)。因此,切片头本身占用的内存大小 24 字节,内存完全一...
  • 发布了文章2025-07-25
    Map 的源码分析、内存分配、扩容机制-Golang 🔥
    Go 语言的 map 是内置的键值对(Key-Value)集合类型,是基于哈希表实现的高效数据结构,用于高效存储和查找数据。其核心特性如下:
  • 提出了问题2025-07-25
    Golang设计思想中的简洁性原则是怎样的?
  • 发布了文章2025-06-30
    数组与切片的源码分析与高效使用-Golang 🔥
    在 Go 语言中,数组(array)和切片(slice)是两种不同的数据结构,它们在内存分配机制上存在着显著差异。深入理解这些差异及原理并恰当使用,能够帮助我们提高代码的执行效率。
  • 发布了文章2025-06-26
    Influxdb3 查询的优化及踩坑记录
    一开始,我采用的查询语句比较简单,仅指定查询时间起点,这在初期并没有出现问题。但是随着写入 measurement 的数据量累积变大后,遇到了查询错误。查询语句及报错信息如下:
  • 赞了文章2025-06-22
    MySQL慢查询日志:性能优化的终极指南
    慢查询日志是MySQL提供的用于记录执行时间超过指定阈值的SQL语句的日志功能,是数据库性能优化的核心工具之一。大白话就是,查询语句超过一定时间没有结果返回,就会将查询语句记录到日志中。