如何判断值类型和引用类型
1:建立函数
2:把进行传参处理
3:观察函数处理结果是否影响值的变化
判断:有变化是引用类型,没有变化是值类型
示例:int是值类型---指针是引用类型
package main
import "fmt"
//值类型和引用类型
//1,创建函数
//2,传参
//3,有变化是引用类型,无变化是值类型
func main() {
var (
a int = 10
c int = 20
b *int
)
b = &c
fmt.Println("处理前a=", a)
fmt.Println("处理前*b=", *b)
test(a, b)
fmt.Println("处理后a=", a)
fmt.Println("处理后*b=", *b)
}
//测试函数
func test(a int, b *int) {
a++
*b++
}
[Running] go run "f:\goProject\src\dev_code\day12\example1\main\main.go"
处理前a= 10
处理前*b= 20
处理后a= 10 //int是值类型
处理后*b= 21 //指针是引用类型
[Done] exited with code=0 in 0.454 seconds
示例:数组:go中数组是值类型
package main
import "fmt"
//值类型和引用类型
//1,创建函数
//2,传参
//3,有变化是引用类型,无变化是值类型
func main() {
arr := [3]int{1, 2, 3}
fmt.Println(arr)
test(arr)
fmt.Println(arr)
}
//测试函数
func test(arr [3]int) {
for i := 0; i < len(arr); i++ {
arr[i]++
}
}
[Running] go run "f:\goProject\src\dev_code\day12\example1\main\main.go"
[1 2 3] //go中数组是值类型
[1 2 3]
[Done] exited with code=0 in 0.457 seconds