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的参数时,函数外部同样修改参数生效。

  • 相关阅读:
    Web相关工具
    web服务器之ApacheCookie 和 session
    web服务器之Apache语法与使用
    Java高并发3-中断线程以及isInterrupted与interrupted区别
    从零开始学VUE之Vue CLI(Cli 2.x 初始化项目)
    从零开始学VUE之Vue CLI(全局安装cli-init)
    从零开始学VUE之Vue CLI(全局安装 CLI)
    从零开始学VUE之淘宝镜像Cnpm安装
    IDEA 过期时间 试用时间 重置插件
    ElementUI el-checkbox 点击Label不取消复选框的选中状态
  • 原文地址:https://www.cnblogs.com/forgo/p/13259742.html
Copyright © 2011-2022 走看看