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


    说明

    在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两个结构体进行快速的实例化。

  • 相关阅读:
    C#--带参SQL语句数通用数据访问类
    VS 2017产品密匙
    关于编码中的字符和字节问题
    关于C++中的cin用法
    C++基础(一、基本语法,Hello World)
    Oracle查看用户所在的表空间
    静态变量、枚举、以及静态代码块的使用场景
    Java 枚举(enum) 详解7种常见的用法
    第一章 对象和封装
    摘抄Java反射
  • 原文地址:https://www.cnblogs.com/liujunhang/p/12535023.html
Copyright © 2020-2023  润新知