zoukankan      html  css  js  c++  java
  • Go Struct之函数参数设置

    golang struct函数的参数设置:

    实例一:形参和类型都为指针类型


    type user struct {
        Name string
        Age  int
    }
    func (u *user) setUser(a *user) {
        a.Name = "fwefew"
       fmt.Printf("func => 形参的name:%s ",a.Name)
        fmt.Printf("func => struct类型的name:%s ",u.Name)
    }
    func main() {
        u := user{"xiaoming", 13}
        u.setUser(&u)
        fmt.Printf("main => name:%s ",u.Name)
    }

    输出:

    func => 形参的name:fwefew
    func => struct类型的name:fwefew
    main => name:fwefew

    实例二:形参和类型都为普通类型

    type user struct {
        Name string
        Age  int
    }

    func (u user) setUser(a user) {
        a.Name = "fwefew"
        fmt.Printf("func => 形参的name:%s ",a.Name)
        fmt.Printf("func => struct类型的name:%s ",u.Name)
    }

    func main() {
        u := user{"xiaoming", 13}
        u.setUser(u)
        fmt.Printf("main => name:%s ",u.Name)
    }

    输出:

    func => 形参的name:fwefew
    func => struct类型的name:xiaoming
    main => name:xiaoming

    实例三:形参为指针类型、类型为普通类型

    type user struct {
        Name string
        Age  int
    }

    func (u user) setUser(a *user) {
        a.Name = "fwefew"
        fmt.Printf("func => 形参的name:%s ",a.Name)
        fmt.Printf("func => struct类型的name:%s ",u.Name)
    }

    func main() {
        u := user{"xiaoming", 13}
        u.setUser(&u)
        fmt.Printf("main => name:%s ",u.Name)
    }

    输出:

    func => 形参的name:fwefew
    func => struct类型的name:xiaoming
    main => name:fwefew

    实例四:形参普通类型、类型为指针类型

    type user struct {
        Name string
        Age  int
    }

    func (u *user) setUser(a user) {
        a.Name = "fwefew"
        fmt.Printf("func => 形参的name:%s ",a.Name)
        fmt.Printf("func => struct类型的name:%s ",u.Name)
    }

    func main() {
        u := user{"xiaoming", 13}
        u.setUser(u)
        fmt.Printf("main => name:%s ",u.Name)
    }

    输出:

    func => 形参的name:fwefew
    func => struct类型的name:xiaoming
    main => name:xiaoming

    总结:形参为指针类型时,在函数类修改struct的参数时,函数外部同样修改参数生效。

  • 相关阅读:
    【C语言天天练(三)】typedef具体解释
    操作系统之基本分页存储管理方式
    线索二叉树创建及删除
    SVN:This client is too old to work with working copy…解决的方法
    android4.2 telephone应用层分析
    JPA学习笔记(3)——JPA注解
    Android研发中对String的思考(源代码分析)
    《Effective Modern C++》翻译--条款2: 理解auto自己主动类型推导
    “2014年CityEngine三维建模与设计精英培训班”——全国巡回举办
    Git命令总结
  • 原文地址:https://www.cnblogs.com/forgo/p/13259742.html
Copyright © 2011-2022 走看看