不使用slice作为函数入参
secguide/Go安全指南.md at main · Tencent/secguide · GitHub https://github.com/Tencent/secguide/blob/main/Go%E5%AE%89%E5%85%A8%E6%8C%87%E5%8D%97.md#119%E6%8E%A8%E8%8D%90%E4%B8%8D%E4%BD%BF%E7%94%A8slice%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E5%85%A5%E5%8F%82
1.1.9【推荐】不使用slice作为函数入参
- slice在作为函数入参时,函数内对slice的修改可能会影响原始数据
// bad
// slice作为函数入参时包含原始数组指针
func modify(array []int) {
array[0] = 10 // 对入参slice的元素修改会影响原始数据
}
func main() {
array := []int{1, 2, 3, 4, 5}
modify(array)
fmt.Println(array) // output:[10 2 3 4 5]
}
// good
// 数组作为函数入参,而不是slice
func modify(array [5]int) {
array[0] = 10
}
func main() {
// 传入数组,注意数组与slice的区别
array := [5]int{1, 2, 3, 4, 5}
modify(array)
fmt.Println(array)
}
分类:
golang
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
2021-01-25 统一登录的几种常用设计模式
2019-01-25 栈 数制转换
2018-01-25 鼠标滚轮
2018-01-25 借助有道词典识别屏幕字符串
2018-01-25 获取剪切板内容 Navigator.clipboard 获取网页图片到剪切板,然后粘贴 复制指定区域,比如一张图片
2018-01-25 【源码】PyObject_VAR_HEAD 定长对象 变长对象
2018-01-25 序列中插入元素