Go 语言通道(Channel)类型详解:声明、使用与实战

本文详细解析 Go 语言中的通道(Channel)类型,涵盖其定义、CSP并发模型原理、双向及单向通道的声明与创建方法。通过有缓冲和无缓冲通道的对比,结合代码示例展示数据收发、关闭机制及循环取值技巧,帮助开发者掌握 Go 并发通信的核心机制。

Golang 实现 HTTP 请求响应 JSON 转结构体

本文介绍在 Golang 中发起 HTTP POST 请求获取 Zabbix API 数据,并将返回的 JSON 响应转换为 Go 结构体以方便取值。重点演示如何定义对应 JSON 字段的结构体、使用 encoding/json 进行 Unmarshal 解析,以及处理数组类型字段的注意事项,附带完整可运行代码与结果展示。

Go语言类型转换库 cast 使用指南

本文介绍Go语言第三方库 github.com/spf13/cast 的使用,解决 interface{} 到具体类型的繁琐转换。文章提供安装方法、安全转换(不 panic)、带错误检查的转换及 JSON 解析示例,并分析其基于反射的性能表现及使用场景建议。

Go 语言加密算法实现详解与代码示例

本文汇总了 Go 语言中常用的加密算法实现,包括 MD5、SHA256 等哈希算法,AES-CBC 对称加密以及 RSA 非对称加密。通过标准库函数与完整代码示例,说明各算法的使用步骤、参数配置及注意事项,帮助开发者快速集成安全功能。

解决Golang编译时dial tcp连接超时或失败的问题

在Windows环境下编译Go项目时,常因无法访问golang.org域名而报错dial tcp connectex。通过设置国内代理如goproxy.cn可解决下载依赖问题;若遇特定模块i/o timeout,可尝试阿里云或七牛云等备用代理地址进行切换。

Golang解析JSON的两个常见坑:空指针与数值类型转换

本文总结Golang中json序列化与反序列化的两个典型陷阱。一是空指针Marshal输出为"null"字符串而非空串,Unmarshal时"null"合法而乱码报错;二是数字被默认转为float64,可能导致大整数精度丢失或科学计数法问题。文章通过代码示例解释了底层处理逻辑并提供规避思路。

Go语言中make与new的区别及实现原理解析

在Go语言中,new和make都是用于初始化的关键字,但作用对象完全不同。new接收类型参数并返回指向该类型的指针,适用于所有类型;而make仅限于slice、map和chan的初始化,并会进行内部结构填充。本文将从使用场景、返回类型差异及编译器底层转换等方面深入解析两者的区别。

Go语言中make与new的区别及实现原理解析

Go语言标准库JSON编码与解析核心用法

本文详解Go语言中encoding/json包的核心功能。通过Marshal和Unmarshal函数,演示如何将Map、结构体(含字段标签与匿名字段)、切片与JSON字符串互转。重点讲解导出规则、json标签语法及类型匹配机制,提供完整代码示例便于快速掌握数据序列化技巧。

Go语言实现AES-CBC加密并编写命令行工具passctl

本文详解如何使用Go标准库crypto/aes实现AES-CBC模式的字符串加解密。通过集成PKCS7填充与Base64编码,封装完整的方法链,并基于os.Args构建名为passctl的轻量级命令行应用程序,支持-h/e/d参数,实现无需第三方依赖的高效安全数据保护。