收藏本版 |訂閲

Go语言论坛 今日: 0|主題: 602|排名: 87 

  • Go语言接口 + 结构体模式实战指南
    目录一、核心认知:接口和结构体的分工基础示例:标准 “接口 + 结构体” 模式二、实战调用:上层代码只依赖接口,不依赖结构体正确调用方式(Controller 层)为什么不直接 new 结构体?三、简化场景:空结构体 + 全局实例简化示例(无依赖、简单逻辑)简化写法的适用场景两种写法对比四、分层中的 “接口 + ...
    095 苏泰化 发表于 2025-12-23 Go语言论坛
  • Go中的闭包函数Closure示例详解
    目录前言1. 通俗定义:自带“背包”的函数2. 代码演示:最经典的计数器3. 底层原理:变量去哪了?(CS 专业向)4. 闭包在实战中的三大用途A. 封装状态(像简化的类)B. 延迟执行 / 回调 (Callback)C. 中间件 / 装饰器 (Middleware / Decorator)总结情况一:调用两次“工厂函数” (你的 main  ...
    081 小雷蕾 发表于 2025-12-22 Go语言论坛
  • Golang 中 return 与 defer关键字实践指南
    目录一、基础认知:return 不是“一步到位”的操作二、关键差异:命名返回值 vs 匿名返回值1.命名返回值:defer可以直接修改返回值示例代码:执行流程拆解:2.匿名返回值:defer无法影响返回值示例代码:执行流程拆解:3. 特殊场景:返回指针时defer会生效示例代码:执行流程拆解:三、defer的其他核心特性拓展1. ...
    0144 品下中龙 发表于 2025-12-18 Go语言论坛
  • 深度剖析golang中的sync包
    目录简介MutexRWMutexWaitGroupOnceCondMapPool简介 golang的sync包提供了一些并发控制的工具,在应用程序开发过程中是非常有用的,下面详细介绍下这些工具的原理和使用在介绍工具之前,先讲解下内存模型中的happens-before关系 // 示例:Happens-Before关系 var a string var done bool func setup() { a = "hello, wo ...
    045 黄怀莹 发表于 2025-12-18 Go语言论坛
  • Golang slice原理深度解析与面试指南
    目录slice 基础结构核心特性内存布局示例slice 扩容机制扩容触发条件扩容策略源码(基于nextslicecap)扩容策略详解内存分配优化append 操作原理append 的返回值机制深层原因:值传递 vs 内存共享内存模型分析函数参数传递机制值传递的详细流程什么情况下会影响原数据?高频面试题解析面试题1:底层数组的共享与隔离面试题2 ...
    0134 盲希 发表于 2025-12-18 Go语言论坛
  • Golang实现结构体和Json格式数据之间的互相转换
    目录摘要1. 结构体到json格式1.1 简单转换1.2 递归转换2. json格式到结构体2.1 简单转换2.2 嵌套JSON格式数据转换摘要 本节主要学习Golang结构体和JSON序列化数据的转换命令。 1. 结构体到json格式 1.1 简单转换 Golang结构体转换成JSON格式数据,主要在结构体的相关字段中加入json : "keyword"字段。具体做法如下: type S ...
    060 你的口气比脚气都大 发表于 2025-12-18 Go语言论坛
  • Go语言快速搭建一个API流式回复本地模拟接口
    目录功能亮点完整代码(mock_coze.go)使用方法自定义回复内容总结在开发 Coze Bot 相关的前端功能时,我们经常需要测试流式回复(SSE)的打字机效果、加载状态、停止响应、内容渲染等逻辑。但直接调用真实的 Coze API 会消耗 token,而且回复速度和内容不可控。 下面分享一个纯 Go 实现的本地模拟接口,只需几分钟就能跑起 ...
    066 慢就是快 发表于 2025-12-18 Go语言论坛
  • Golang实现基于角色的访问控制(RBAC)的项目实践
    目录一、RBAC 核心模型设计二、RBAC 核心逻辑实现RBAC 管理器定义基础 CRUD:添加用户 / 角色 / 权限核心:权限校验逻辑三、结合 HTTP 中间件集成 RBAC权限校验中间件完整使用示例四、生产环境优化持久化存储缓存优化性能与并发扩展:RBAC 高级特性RBAC(Role-Based Access Control)是基于角色的访问控制,核心思想是:用 ...
    069 萧静 发表于 2025-12-15 Go语言论坛
  • Golang defer 延迟函数的方法实践
    目录‌执行顺序与后进先出(LIFO)原则‌‌参数预计算特性‌‌与 panic 的关系‌‌资源管理的最佳实践‌‌避免常见陷阱‌‌性能与资源管理‌在 Go 语言中,defer 关键字用于延迟执行函数调用,常用于资源释放、错误处理和清理操作。以下是 defer 的关键使用注意事项: &zw ...
    0143 小薰 发表于 2025-12-15 Go语言论坛
  • Golang查询MongoDB的实现步骤
    目录使用 Golang 向 MongoDB 插入文档使用 Golang 向 MongoDB 写入多个文档使用 Golang 从 MongoDB 中查找单个文档获取最后创建的文档使用 Golang 从 MongoDB 中查找所有文档查找符合条件的多个文档在查找操作中使用Projection使用 Golang 更新 MongoDB 中的单个文档如何在 MongoDB 中返回更新的文档?使用 Golang 从 Mongo ...
    0132 蓝星世界 发表于 2025-12-15 Go语言论坛
  • golang微服务框架Kratos实现消息队列
    目录什么是消息队列为什么要使用消息队列1. 异步2. 削峰3. 解耦Kratos与消息队列kratos-transport的应用1. Codec 编解码器2. Broker 消息队列客户端3. Server 封装给Kratos的Server实现具体的应用实例kratos-cqrskratos-realtimemapkratos-chatroom中间件代码什么是消息队列 MQ就是消息队列,是Message Queue的缩写。消息队 ...
    054 林桦 发表于 2025-12-15 Go语言论坛
  • golang中go race使用
    目录多线程/协程中的线程安全分析死锁竞争Go 的命令中,-race参数用于启用竞态检测器(Race Detector)使用示例注意多线程/协程中的线程安全分析 在项目中,使用多线程会导致线程安全问题,引发bug发生,如果是运行中发生问题更难定位 常见的情况有两种 死锁 竞争,例如 死锁 编译打包时,死锁发生 go run 会直接报错 两个或 ...
    066 承權 发表于 2025-12-14 Go语言论坛
  • golang WebDav 多目录文件服务的实现
    目录普通WebDav服务一个端口共享多用户/多目录golang官方提供了webdav服务包,但是,功能比较有限,这里主要针对一个端口,多目录做解释 普通WebDav服务 package main import ( "net/http" "golang.org/x/net/webdav" ) func main() { http.ListenAndServe(":8080", &webdav.Handler{ FileSystem: we ...
    0102 失控半睡者 发表于 2025-12-14 Go语言论坛
  • GoLang五种字符串拼接方式小结
    目录1.+ 操作符拼接工作原理性能特点适用场景2.fmt.Sprintf工作原理性能特点适用场景3.strings.Builder工作原理性能特点内部机制适用场景4.bytes.Buffer工作原理性能特点与 strings.Builder 对比适用场景5.strings.Join工作原理性能特点适用场景性能对比总结选择建议最佳实践示例1.+ 操作符拼接 工作原理 每次使用 + 拼接字 ...
    072 秦月汉关 发表于 2025-12-14 Go语言论坛
  • golang的csp模型具体使用
    目录一、Channel:CSP 模型的 “通信管道”1.1 Channel 的基本特性1.2 简单示例二、为什么需要 Channel?—— 解决共享内存的 “原罪”三、无缓冲 Channel 与有缓冲 Channel:同步与异步的分野3.1 无缓冲 Channel(同步通道)3.2 有缓冲 Channel(异步通道)3.3 核心区别总结四、CSP 模型: ...
    094 火锅火锅 发表于 2025-12-14 Go语言论坛
  • Go语言结构体标签(Tag)的使用小结
    目录什么是结构体标签?基本语法常见的标签用途1.JSON 序列化/反序列化(最常用)2.数据库操作(SQL/ORM)3.Web 框架表单绑定(Gin 等)4.验证规则(binding/validate)5.XML 编码/解码6.YAML 序列化7.BSON(MongoDB)自定义标签标签的解析规则1.格式规范2.通过反射获取标签3.标签解析示例实际应用场景场景1:API 请求/响应 ...
    049 光说不练假把式 发表于 2025-12-14 Go语言论坛
  • Golang垃圾回收器执行链路详细分析
    目录何时会触发垃圾回收?系统监控申请内存gcStart 干了啥?大体流程迭代标记一些优化总结众所周知,我们现版本的 Go 默认是使用的三色标记法,八股文已经听腻了,来看点源码理解一下 GC 流程。 何时会触发垃圾回收? 系统监控 懂行的都知道,gc 的入口是 gcStart,所以我们只需要顺着他的调用链路向上找,可以知道会有一个 ...
    093 子房 发表于 2025-12-5 Go语言论坛
  • Go泛型中的~struct{}的具体使用
    目录一、前置知识:Go泛型的核心痛点与解决方案二、~符号:引入版本与核心目的2.1 ~符号的引入版本2.2 ~符号的核心目的:实现“近似类型匹配”三、struct{}:“零内存”的空结构体特性3.1 struct{}的内存特性验证3.2 struct{}的典型应用场景四、~struct{}:约束含义与实践示例4.1 示例1:精确约束s ...
    059 幸福转角 发表于 2025-12-5 Go语言论坛
  • Go异常处理、泛型和文件操作实例代码
    目录一:异常处理常见的异常处理向上抛中断程序恢复程序二:泛型泛型函数泛型结构体泛型切片泛型 map三:文件操作文件读取一次性读取获取当前go文件的路径分片读带缓冲读指定分割符文件写入一次性写文件的打开方式文件复制目录操作四:总结一:异常处理 go的异常处理可能是这门语言唯一的一个诟病了吧 由于 go 语言没有捕获 ...
    0163 雨月烟红 发表于 2025-12-4 Go语言论坛
  • Go 语言 interface从源码到使用实践指南
    目录前言一、什么是 interface?二、interface 的底层实现(源码视角)1. 空接口(interface{})2. 非空接口(带方法的接口)接口赋值的底层过程三、interface 的基本使用1. 接口定义与实现2. 接口组合3. 类型断言4. 类型开关(type switch)四、最佳实践与使用技巧1. 接口设计原则:小而专2. 依赖抽象而非具体3. 合理使用 ...
    085 一王情深 发表于 2025-12-4 Go语言论坛
  • 下一頁 »

    快速發帖

    還可輸入 180 個字符
    您需要登錄後才可以發帖 登錄 | 立即注册

    本版積分規則

    圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

    Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

    在本版发帖返回顶部