go值传递和引用传递

简介: go值传递和引用传递

一、值传递

package main
 
import "fmt"
 
//值传递 基本类型、array.struct
 
func main() {
  arr := [4]int{1, 2, 3, 4}
  changeArr(arr)
  fmt.Println(arr)
}
func changeArr(arr [4]int) {
  fmt.Println("接收到的参数", arr)
  arr[0] = 5
  fmt.Println("修改后的参数", arr)
}
接收到的参数 [1 2 3 4]
修改后的参数 [5 2 3 4]
[1 2 3 4]

二、引用传递

package main
 
import "fmt"
 
//引用传递
 
func main() {
  arr := []int{1, 2, 3, 4}
  changeSlice(arr)
  fmt.Println(arr)
}
func changeSlice(arr []int) {
  fmt.Println("接收到的参数", arr)
  arr[0] = 5
  fmt.Println("修改后的参数", arr)
}
接收到的参数 [1 2 3 4]
修改后的参数 [5 2 3 4]
[5 2 3 4]
目录
相关文章
【Go 进阶】Go 语言到底是值传递,还是引用传递?(四)
【Go 进阶】Go 语言到底是值传递,还是引用传递?(四)
|
12月前
|
存储 Go
Go中都是值传递,切记! 你所了解的引用传递等知识经验从今天开始彻底抛弃!
Go中都是值传递,切记! 你所了解的引用传递等知识经验从今天开始彻底抛弃!
【Go 进阶】Go 语言到底是值传递,还是引用传递?(三)
【Go 进阶】Go 语言到底是值传递,还是引用传递?(三)
【Go 进阶】Go 语言到底是值传递,还是引用传递?(二)
【Go 进阶】Go 语言到底是值传递,还是引用传递?(二)
|
存储 Java 程序员
【Go 进阶】Go 语言到底是值传递,还是引用传递?(一)
【Go 进阶】Go 语言到底是值传递,还是引用传递?(一)
Go -- 方法中何时使用值传递何时使用指针共享
Go -- 方法中何时使用值传递何时使用指针共享
|
9天前
|
安全 测试技术 Go
Go语言在高并发场景下的应用
在当今互联网高速发展的时代,高并发已成为众多应用系统面临的核心问题。本文探讨了Go语言在高并发场景下的优势,并通过具体实例展示了其在实际应用中的效果和性能表现。
|
6天前
|
Go
go语言map、实现set
go语言map、实现set
13 0
|
6天前
|
Go
go语言数组与切片
go语言数组与切片
15 0
|
2天前
|
JSON 算法 测试技术
在go语言中调试程序
【6月更文挑战第29天】Go语言内置`testing`包支持单元测试、基准测试和模糊测试。`go test`命令可执行测试,如`-run`选择特定测试,`-bench`运行基准测试,`-fuzz`进行模糊测试。
14 2
在go语言中调试程序