登录 主页

go - 结构体

2024-08-03 05:59PM

参考:https://www.topgoer.com/go/结构体

1.结构体:

go语言中的基础数据类型可以表示一些事物的基本属性,但是我们想表达一个事物的全部或部分属性时,这时候再用单一的数据类型明显就无法满足需求了,go语言提供了一个种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体(struct),我们可以通过struct来定义自己的类型。

go语言中通过struct来实现面向对象。

1.2 结构体定义:

使用type和struct关键字来定义结构体,具体代码格式如下:

type 类型名 struct {

  字段名 字段类型

  字段名 字段类型 

}

其中:

1)类型名:表示自定义结构体的名称,在同一个包内不能重复。

2)字段名:表示结构体字段名。结构体中的字段名必须唯一。

3)字段类型:表示结构体字段的具体类型。

eg:定义一个Person结构体,代码如下:

type person struct {
  name string
  city string
  age  int8
}

同类型的字段也可以写在一行:

type person1 struct {
  name, city string
  age        int8
}

这样我们就拥有了一个person的自定义类型,它有name、city、age三个字段,分别表示姓名、城市和年龄。这样我们使用了这个person结构体就可以很方便的在程序中表示和存储人信息了。

语言内置的基础数据类型是用来描述一个值的,而结构体是用来描述一组值的,比如一个人有名字、年龄和居住城市等,本质上是一种聚合型的数据类型

1.2.2 结构体实例化

只有当结构体实例化是,才会真正地分配内存。也就是必须实例化后才能使用结构体的字段。

结构体本身也是一种类型,我们可行像声明内置变量一样使用 var关键字声明结构体类型。

var 结构体实例 结构体类型

1.2.3 基本实例化

package main
import "fmt"
type person struct {
    name string
    city string
    age  int8
}
func main() {
    var p1 person
    p1.name = "李莉"
    p1.city = "北京"
    p1.age = 20
    fmt.Printf("p1=%v\n", p1)  //p1={李莉 北京 20}
    fmt.Printf("p1=%#v\n", p1) //p1=main.person{name:"李莉", city:"北京", age:20}
}

可以通过.来访问结构体的字段,例如p1.name和p1.age等 

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论