golang 值传递和引用传递的总结

典型的引用传递类型:slice,map和channel:
典型的值传递类型:数组

package main

import "fmt"

type Test struct {
    A int64
    B string
}

func main(){
    // 引用类型
    map_param := make(map[int64]string,0)
    fmt.Println(map_param)
    mapfunc(map_param)
    fmt.Println(map_param)
    slice_param := make([]int64,0)
    slice_param = append(slice_param,999)
    fmt.Println(slice_param)
    slicefunc(slice_param)
    fmt.Println(slice_param)
    // 值类型
    arr_param := [5]int64{1,2,3,4}
    fmt.Println(arr_param) // 1,2,3,4
    arrfunc(arr_param)
    fmt.Println(arr_param) // 1,2,3,4
    test := Test{A:1,B:"ooo",}
    fmt.Println(test) // 1,ooo
    testfunc(test)
    fmt.Println(test) // 1,ooo
}

func mapfunc(param map[int64]string){
    param[1]="ahha"
}

func slicefunc(param []int64){
    param[0]=10000
}

func testfunc(a Test){
    a.A=9999
    a.B="hah"
}

func arrfunc(param [5]int64){
    param[0]=10000
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值