加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-16 09:45:47 所属栏目:大数据 来源:网络整理
导读:典型的引用传递类型: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_para

典型的引用传递类型: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,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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读