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

  • 相关阅读:
    AC日记——Little Elephant and Numbers codeforces 221b
    AC日记——Little Elephant and Function codeforces 221a
    AC日记——Mice and Holes codeforces 797f
    AC日记——Sliding Window poj 2823
    Poj 2976 Dropping tests(01分数规划 牛顿迭代)
    Bzoj 1968: [Ahoi2005]COMMON 约数研究
    洛谷 P2424 约数和
    Hdu Can you find it?(二分答案)
    SPOJ GSS1
    Bzoj 2243: [SDOI2011]染色(树链剖分+线段树)
  • 原文地址:https://www.cnblogs.com/forgo/p/13259742.html
Copyright © 2011-2022 走看看