golang
已收录文章:1656篇
-
指针比较判断内存地址是否相等,使用==或!=操作符;相同变量的指针地址相等,nil指针间比较为true,不同类型指针不可直接比较;结构体指针仅当指向同一实例时相等,即使内容相同但地址不同则不等;函数指针若指向同一函数则相等;注意类型匹配与nil处理。289 收藏
-
最直接且推荐的做法是从官网下载最新Go二进制包并手动配置。首先下载go1.22.3.linux-amd64.tar.gz,解压至/usr/local,再将/usr/local/go/bin加入PATH环境变量,并设置GOPATH为$HOME/go,最后通过goversion和goenv验证安装。不推荐使用apt安装,因Ubuntu仓库版本滞后,易导致兼容性问题。为管理多版本Go,可使用goenv工具,支持按项目切换版本。安装后通过gorun运行“Hello,Go!”程序,验证环境正常。170 收藏
-
Go语言中可变参数函数通过...T定义,如sum(numbers...int),参数在函数内视为切片,可遍历处理,支持传入任意数量同类型参数,也可将切片展开为参数传入。216 收藏
-
Go语言中通过crypto包实现AES和RSA加密解密:AES采用CBC模式配合PKCS7填充,需生成密钥和随机IV,加解密使用相同密钥;RSA采用PKCS1v15标准,公钥加密私钥解密,适用于小数据加密或密钥传输;实际应用中常结合二者优势,使用RSA加密AES密钥,AES加密主体数据,以兼顾性能与安全。360 收藏
-
Mutex用于互斥访问,RWMutex提升读多写少场景性能;使用defer确保解锁,避免死锁与复制Mutex,推荐-race检测竞争。350 收藏
-
数据库迁移是通过版本化脚本管理数据库结构变更的关键机制。使用golang-migrate工具可实现自动化升级与回滚,建议每次变更生成新迁移文件、配对up/down操作、纳入Git版本控制,并在CI/CD中校验,生产环境操作前备份数据,结合ORM时仍用SQL迁移确保安全可控。445 收藏