go中的方法以及自定義類型代碼示例

package main

import "fmt"

type user struct {
    name string
    age  int
    sex  string
}
type admin struct {
    person user
    level  string
}

func main() {
    u := user{name: "zhangsan",
        age: 12,
        sex: "女"}

    u.userReciver("裏默默")
    //Go在代碼背後的執行動做
    //(&u).userReciver("裏默默")


    //也可使用指針來調用使用值接收者聲明的方法
    u1 := &user{name: "zhangsan",
        age: 12,
        sex: "女"}
    u1.userReciver1()
    //獲取的u1地址,須要經過地址獲取值
    fmt.Println(*u1)

    //自定義類型也能夠嵌套。
    ad := admin{
        person: user{
            name: "sawanhg",
            age:  34,
            sex:  "男",
        },
        level: "niubi",
    }
    fmt.Println(u)
    fmt.Println(ad)
}

//關鍵字func和函數名之間的參數被稱做接收者,將函數與接收者的類型綁在一塊兒。
// 若是一個函數有接收者,這個函數就被稱爲方法
func (u user) userReciver1() {
    u.name = "裏默默你好"

}

//user值接者,
// 和上面不使用指針的方法比更方便改完值後面繼續用。
func (u *user) userReciver(name string) {
    u.name = name
}
相關文章
相關標籤/搜索