本文先给出Go语言中struct类型作为函数参数传入的例子,然后给出总结
首先看下面代码
1 | func changeValue(person Person){ |
总结
- struct类型的传递是按值传递的,与数组[5]byte等的传递相似,也可以理解为和C++一样
- struct类型传递与切片不同,切片事实上是一个指针(栈)指向一块数组(堆)这样的数据结构,所以无论如何都是传入指针或者是指针(栈)的指针(指向栈)
- 可以理解为: 切片类似于Java(切片还多了个特色,通过传入切片可以修改指针(栈)本身,而Java是做不到的), 而数组类似于C++
注意:struct类型与切片传值方式不同而与数组相同