为什么在函数传参时,数组参数有无固定长度,会产生这样的差距,就是arr5里面的内容不会被改变,arr7却会改变,刚开始学go,求大佬赐教

codeYuanY · · 263 次点击 · 开始浏览    置顶
arr5 := [5]int{1,2,3,4,5} arr6 := baseStruct.Modify1(arr5) fmt.Println(arr5)//打印结果:[1 2 3 4 5] fmt.Println(arr6)//打印结果:[300 2 3 4 5] /* 所用函数 func Modify1(array [5]int) [5]int{ array[0] = 300 return array } */ arr7 := []int{1,2,3,4,5} arr8 := baseStruct.Modify2(arr7) fmt.Println(arr7)//打印结果:[300 2 3 4 5] fmt.Println(arr8)//打印结果:[300 2 3 4 5] /* 所用函数 func Modify2(array []int) []int { array[0] = 300 return array } */

有疑问加站长微信联系

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:812540095

263 次点击  
加入收藏 微博
8 回复  |  直到 2020-10-09 21:58:17
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传