收藏本版 |訂閲

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

  • Go JSON中序列化大整数精度丢失的问题分析
    目录场景示例JSON 序列化JSON 反序列化到 map[string]interface{}再转回 int64对比差值问题分析解决方案方案 1:使用字符串存储大整数方案 2:使用json.Number解析方案 3:使用 struct 明确类型结论在 Go 项目中,我们经常使用 map[string]interface{} 来表示动态字段,或者用 JSON 序列化对象存入数据库、发送到 MQ。然而 ...
    060 刘旭妍 发表于 2026-1-4 Go语言论坛
  • Golang协程中channel和sync的角色扮演分析
    目录Channel代码示例Sync代码示例实际应用问题代码问题分析解决方案Mutex(互斥锁)解决案例Channel 解决案例结论Channel 的角色Sync 的角色Channel channel 是Go语言中用于协程(goroutine)之间通信的一种机制。通过channel,你可以在不同的goroutine之间安全地传递数据。 代码示例 package main import ( "fmt" " ...
    0106 落花成迷 发表于 2026-1-4 Go语言论坛
  • Go语言中的函数、闭包、defer、错误处理的学习教程
    目录1、函数的定义1、 函数作为“一等公民”2、函数的定义与调用3、 参数传递:值传递 (Pass-by-Value)2、函数的可变参数1、返回值详解2、可变参数 (Variadic Parameters)3、函数一等公民特性1、函数作为变量2、函数作为参数(回调函数)3、 函数作为返回值4、 匿名函数 (Anonymous Functions)4.1定义和使用方式4 ...
    044 为欢几何 发表于 2026-1-2 Go语言论坛
  • gorm结构体零值不更新问题及解决方案
    目录问题描述解决办法总结问题描述 在使用gorm的时候如果用结构体进行update或者updates会出现零值、空值不更新的问题,常见的办法有两种: 1.使用Save(),但是Save会保存所有字段,也就是说,必须将所有字段信息全部获取才能更新,否则没有传值的字段会更新成空。 2.使用map接口,即map[string]interface{},但是当我们使 ...
    023 趙韋 发表于 2025-12-31 Go语言论坛
  • Golang将接口文档字段转结构体的实践指南
    目录问题提出实现思路和代码测试小结本文给出一个从接口文档字段说明文字转换成golang结构体的方法。 问题提出 近期使用golang完成一个数据传输的工程的编写,难度不大,但接口较多,每个接口传输的字段都不少,最多的接口字段,有超过150个。这些字段在查询数据库和发送数据都用到——只是部分字段名称不同,为 ...
    074 菲菲恋 发表于 2025-12-31 Go语言论坛
  • go语言中的结构体嵌入详解(最新推荐)
    目录一、什么是结构体嵌入?二、最直观的效果:字段“提升”(Promoted Fields)1️⃣ 直接访问被嵌入结构体的字段三、方法也会被“提升”(非常关键)1️⃣ 嵌入结构体的方法四、结构体嵌入 ≠ 继承,但很像五、嵌入多个结构体(类似多继承)六、字段 / 方法冲突规则(必考点)1️⃣ 同名字段冲突2 ...
    078 王义云 发表于 2025-12-31 Go语言论坛
  • Golang对于用户密码的加密解决方案
    目录MD5实现性能测试PBKDF2实现性能测试Argon2实现性能测试scrypt实现性能测试bcrypt实现性能测试测试总结完整代码对于用户密码的存储一直以来都是用户系统的重中之重,对安全性有较高要求的系统会采取双端加密,即前端使用非对称加密+Base64编码,后端用私钥解密后再采用不可逆的哈希算法进行加密。 笔者以前一直都是在用m ...
    048 朱培民 发表于 2025-12-29 Go语言论坛
  • golang实现ftp功能简单又实用(示例代码)
    配置文件部分: FtpServer: ListenAddr: ":2121" ListenDir: "/data/ftpwww" # ftp目录 PassivePortRange: # end必须大于start,否则会panic, 非被动模式不用配置 Start: 3121 End: 3124 ListenUsers: # ftp账号 - Username: ftpadmin Password: "123456..." - Username: ftpadmin Pa ...
    0116 禪院真希 发表于 2025-12-27 Go语言论坛
  • Golang信号处理实战
    目录1. 为什么需要信号处理2. 核心 API3. 基本使用示例:监听SIGINT(Ctrl+C)和SIGTERM(kill)4. 使用NotifyContext优雅退出5. 高级用法5.1 忽略信号5.2 动态取消订阅5.3 同时监听多个信号6. 原理机制7. 最佳实践8. 实战案例:优雅关闭 HTTP 服务器1. 为什么需要信号处理 在类 Unix 系统中,信号(Signal)是一种异步通知 ...
    070 生在红旗下 发表于 2025-12-24 Go语言论坛
  • Golang中NetPoll机制的实现
    目录Linux 网络IOLinux 非阻塞IO Select、Poll、EpollGolang 中Epoll 应用一个简单的网络IONetPoll的调度Linux 网络IO Linux 的阻塞网络 I/O (输入/输出) 是指在进行网络操作(如 read() 或 write())时,如果操作无法立即完成,调用线程将被操作系统“阻塞”,直到操作成功或失败才返回。它属于同步 I/O 模型的 ...
    060 小小西 发表于 2025-12-23 Go语言论坛
  • Go语言中范围range的使用小结
    目录一、什么是range二、遍历数组 / 切片(最常用)三、遍历字符串四、遍历 map五、遍历 channel六、range 的“值拷贝陷阱”七、什么时候不用 range?八、总结一、什么是range range 是 Go 里 用于遍历数据结构的语法糖,常见用法: for k, v := range collection { ... } 它能遍历的对象包括: 数组 / 切片 ...
    035 金色的鱼钩 发表于 2025-12-23 Go语言论坛
  • Go语言接口 + 结构体模式实战指南
    目录一、核心认知:接口和结构体的分工基础示例:标准 “接口 + 结构体” 模式二、实战调用:上层代码只依赖接口,不依赖结构体正确调用方式(Controller 层)为什么不直接 new 结构体?三、简化场景:空结构体 + 全局实例简化示例(无依赖、简单逻辑)简化写法的适用场景两种写法对比四、分层中的 “接口 + ...
    067 苏泰化 发表于 2025-12-23 Go语言论坛
  • Go中的闭包函数Closure示例详解
    目录前言1. 通俗定义:自带“背包”的函数2. 代码演示:最经典的计数器3. 底层原理:变量去哪了?(CS 专业向)4. 闭包在实战中的三大用途A. 封装状态(像简化的类)B. 延迟执行 / 回调 (Callback)C. 中间件 / 装饰器 (Middleware / Decorator)总结情况一:调用两次“工厂函数” (你的 main  ...
    058 小雷蕾 发表于 2025-12-22 Go语言论坛
  • Golang 中 return 与 defer关键字实践指南
    目录一、基础认知:return 不是“一步到位”的操作二、关键差异:命名返回值 vs 匿名返回值1.命名返回值:defer可以直接修改返回值示例代码:执行流程拆解:2.匿名返回值:defer无法影响返回值示例代码:执行流程拆解:3. 特殊场景:返回指针时defer会生效示例代码:执行流程拆解:三、defer的其他核心特性拓展1. ...
    0115 品下中龙 发表于 2025-12-18 Go语言论坛
  • 深度剖析golang中的sync包
    目录简介MutexRWMutexWaitGroupOnceCondMapPool简介 golang的sync包提供了一些并发控制的工具,在应用程序开发过程中是非常有用的,下面详细介绍下这些工具的原理和使用在介绍工具之前,先讲解下内存模型中的happens-before关系 // 示例:Happens-Before关系 var a string var done bool func setup() { a = "hello, wo ...
    018 黄怀莹 发表于 2025-12-18 Go语言论坛
  • Golang slice原理深度解析与面试指南
    目录slice 基础结构核心特性内存布局示例slice 扩容机制扩容触发条件扩容策略源码(基于nextslicecap)扩容策略详解内存分配优化append 操作原理append 的返回值机制深层原因:值传递 vs 内存共享内存模型分析函数参数传递机制值传递的详细流程什么情况下会影响原数据?高频面试题解析面试题1:底层数组的共享与隔离面试题2 ...
    0103 盲希 发表于 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 ...
    037 你的口气比脚气都大 发表于 2025-12-18 Go语言论坛
  • Go语言快速搭建一个API流式回复本地模拟接口
    目录功能亮点完整代码(mock_coze.go)使用方法自定义回复内容总结在开发 Coze Bot 相关的前端功能时,我们经常需要测试流式回复(SSE)的打字机效果、加载状态、停止响应、内容渲染等逻辑。但直接调用真实的 Coze API 会消耗 token,而且回复速度和内容不可控。 下面分享一个纯 Go 实现的本地模拟接口,只需几分钟就能跑起 ...
    046 慢就是快 发表于 2025-12-18 Go语言论坛
  • Golang实现基于角色的访问控制(RBAC)的项目实践
    目录一、RBAC 核心模型设计二、RBAC 核心逻辑实现RBAC 管理器定义基础 CRUD:添加用户 / 角色 / 权限核心:权限校验逻辑三、结合 HTTP 中间件集成 RBAC权限校验中间件完整使用示例四、生产环境优化持久化存储缓存优化性能与并发扩展:RBAC 高级特性RBAC(Role-Based Access Control)是基于角色的访问控制,核心思想是:用 ...
    045 萧静 发表于 2025-12-15 Go语言论坛
  • Golang defer 延迟函数的方法实践
    目录‌执行顺序与后进先出(LIFO)原则‌‌参数预计算特性‌‌与 panic 的关系‌‌资源管理的最佳实践‌‌避免常见陷阱‌‌性能与资源管理‌在 Go 语言中,defer 关键字用于延迟执行函数调用,常用于资源释放、错误处理和清理操作。以下是 defer 的关键使用注意事项: &zw ...
    0103 小薰 发表于 2025-12-15 Go语言论坛
  • 下一頁 »

    快速發帖

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

    本版積分規則

    相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

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

    在本版发帖返回顶部