码迷,mamicode.com
首页 > 其他好文 > 详细

[golang]语法基础之构造函数

时间:2020-03-20 22:32:58      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:初始   使用   形式   基础   lang   没有   初始化   包含   实例   

说明

在go语言中并没有构造函数的概念,但是我们可以通过结构体初始化的过程来模拟构造函数。

使用

首先,我们先来创建一个结构体。

type user struct {
    name string
    age int
    email string
}

接下来我们来给上面的结构体进行初始化,我们通过模拟构造函数的形式进行初始化,如下:

func NewUser(name string,age int,email string) user {
    return user {
        name: name,
        age: age,
        email: email,
    }
}

在上面的代码中我们创建了一个函数,这个函数主要用来给user结构体进行初始化,需要注意的是一般这样的函数的名字都是以new开头后面跟上要初始化的结构体。

如果结构体当中包含的字段过多,我们可以在函数返回的时候返回一个指针。

func NewUser(name string,age int,email string) *user {
    return &user {
        name:name,
        age : age ,
        email:email,
    }
}

在go中,是允许结构体嵌套的,如下:

type user struct {
    name string
    age int
    email string
}

type admin struct {
    person user 
    level string 
}

上面代码中,结构体admin中嵌套了一个user类型的结构体person,我们可以分别给user和admin两个结构体创建构造函数。

func NewUser(name string,age int,email string) *user {
    return &user {
        name:name,
        age : age ,
        email:email,
    }
}

func NewAdmin(name string, age int , email string ,level string) *admin {
    person := *NewUser(name,age,email) // 将user类型的结构体person实例化
    return &admin {
        person:person,
        level:level,
    }
}

在上面的代码中,我们分别给user结构体和admin结构体创建了构造函数,这样通过这两个构造函数就可以分别对user和admin两个结构体进行快速的实例化。

[golang]语法基础之构造函数

标签:初始   使用   形式   基础   lang   没有   初始化   包含   实例   

原文地址:https://www.cnblogs.com/liujunhang/p/12535023.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!