golang学习-结构体

1、定义

使用type 和struct 关键字来定义结构体,是值类型

格式如下:

type 类型名 struct {

        字段名 类型

        字段名 类型

        ...

}

2、实例化

1、var 结构体实例 结构体类型    var p1 Person  

2、使用new关键字   var p2 = new(Person)

3、使用&对结构体进行取地址操作 p3:=&Person{}

第二种和第三种返回的是指针类型

4、键值对初始化

p4:= Person {

        name :"李四",

}

5、&取内存地址

p5:=&Person{

        name :"李四",

}

6、简写 不指名key 直接写value

p6:=&Person{

        "张三

"

}

 结构体首字母大写表示结构体共有,在其他包里可以使用。首字母小写表示结构体私有,只能在这个包里使用。

在golang中 支持对结构体指针直接使用.来访问结构体的成员   p2.name = "张三",其在底层是(*p2).name="张三"

3、结构体的匿名字段

结构体允许成员字段声明时没有字段名只有类型,这种没有名字的字段叫匿名字段。匿名字段默认采用类型名作为字段名,因此类型不能重复。

type Person {

        string

        int

}

4、结构体嵌套

当访问结构体成员时会先在结构体中查找该字段,找不到再去匿名结构体中查找、

type User struct {
	Username string
	Age      int
	Address  Address
}
type Address struct {
	Name  string
	phone string
}

func main() {
	var u = new(User)
	u.Username = "张三"
	u.Age = 20
	u.Address.Name = "不会"
	u.Address.phone = "1233"
	// fmt.Printf("%#v", u)
	fmt.Println(&u.Address)
}

 golang中使用结构体嵌套来实现继承。

相关推荐

  1. golang学习-结构

    2024-01-13 10:26:03       29 阅读
  2. golang学习笔记——结构嵌套接口

    2024-01-13 10:26:03       9 阅读
  3. golang学习-golang结构和Json相互转换

    2024-01-13 10:26:03       35 阅读
  4. Golang 语法系列:结构

    2024-01-13 10:26:03       29 阅读
  5. golang第四卷---结构

    2024-01-13 10:26:03       36 阅读
  6. Golang gorm 结构定义使用

    2024-01-13 10:26:03       32 阅读
  7. 初识GolangGolang 中的结构和方法

    2024-01-13 10:26:03       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-13 10:26:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-13 10:26:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-13 10:26:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-13 10:26:03       18 阅读

热门阅读

  1. No Feign Client for loadBalancing defined. 错误解决

    2024-01-13 10:26:03       37 阅读
  2. MYSQL学习——聚合函数

    2024-01-13 10:26:03       28 阅读
  3. 30天精通Nodejs--第十五天:Websocket

    2024-01-13 10:26:03       34 阅读
  4. 深度学习基础教程

    2024-01-13 10:26:03       28 阅读
  5. 「HDLBits题解」Module add

    2024-01-13 10:26:03       29 阅读
  6. 在Python中调用狄拉克gamma矩阵

    2024-01-13 10:26:03       29 阅读
  7. leaflet聚类——leaflet.markercluster

    2024-01-13 10:26:03       28 阅读
  8. 单链表与循环链表创建

    2024-01-13 10:26:03       37 阅读
  9. 关于人工智能的浅见

    2024-01-13 10:26:03       34 阅读
  10. Python字符串的编码和解码

    2024-01-13 10:26:03       30 阅读