zoukankan      html  css  js  c++  java
  • go语言基础之结构体做函数参数 值传递和地址传递

    1、结构体做函数参数值传递

    示例:

    package main //必须有个main包
    
    import "fmt"
    
    //定义一个结构体类型
    type Student struct {
    	id   int
    	name string
    	sex  byte //字符类型
    	age  int
    	addr string
    }
    
    func test01(s Student) {
    	s.id = 666
    	fmt.Println("test01: ", s)
    }
    
    func main() {
    	s := Student{1, "mike", 'm', 18, "bj"}
    
    	test01(s) //地址传递
    	fmt.Println("main: ", s)
    
    }
    

    执行结果:

    test01:  {666 mike 109 18 bj}
    main:  {1 mike 109 18 bj}
    

      

    2、结构体做函数参数:地址传递

    示例:

    package main //必须有个main包
    
    import "fmt"
    
    //定义一个结构体类型
    type Student struct {
    	id   int
    	name string
    	sex  byte //字符类型
    	age  int
    	addr string
    }
    
    func test02(p *Student) {
    	p.id = 666
    }
    
    func main() {
    	s := Student{1, "mike", 'm', 18, "bj"}
    
    	test02(&s) //地址传递(引用传递),形参可以改实参
    	fmt.Println("main: ", s)
    
    }
    

    执行结果:

    main:  {666 mike 109 18 bj}
    

      

  • 相关阅读:
    json 拼二维json数组
    lnmp 环境搭建
    lnmp git ruby sass 安装
    制定clone的用户名
    git branch 重命名
    sql命令创建数据库
    layerui
    弹出确认框,打开新窗口
    Ajax请求小结
    .net core注入服务
  • 原文地址:https://www.cnblogs.com/nulige/p/10245674.html
Copyright © 2011-2022 走看看