golang结构体

朴灿烈づ我的快乐病毒、 2022-08-30 11:39 312阅读 0赞

1、什么是结构体

1、结构体解释:将一个多个变量合并到一起,形成新的类型,这个类型就是结构体

2、结构体是值类型

3、结构体定义语法,Go语言发明者明确认为结构体就是一种自定义类型

  1. type 结构体名称 struct{
  2. 名称 类型//成员或属性
  3. }

2、代码示例

  • 结构体可以定义在函数内部或函数外部(与普通变量一样),定义位置影响到结构体的访问范围
  • 如果结构体定义在函数外面,结构体名称首字母是否大写影响到结构体是否能跨包访问
  • 如果结构体能跨包访问,属性首字母是否大写影响到属性是否跨包访问

    type People struct {

    1. Name string
    2. Age int

    }

3、声明结构体变量,由于结构体是值类型,所以声明后就会开辟内存空间

  1. var peo People
  2. fmt.Print(peo)//输出:{0 }
  3. fmt.Printf("%p",&peo)//会打印内存地址值

4、可以直接给结构体多个属性赋值

  1. var peo People
  2. //按照结构体中属性的顺序进行赋值,可以省略属性名称
  3. peo = People{ "jeff", 18}
  4. fmt.Println(peo)
  5. //明确指定给哪些属性赋值.可以都赋值,也可以只给其中一部分赋值
  6. peo = People{ Age: 18, Name: "jeff"}
  7. fmt.Println(peo)

5、也可以通过结构体变量名称获取到属性进行赋值或查看

  1. var peo People
  2. peo.Name="jeff"
  3. peo.Age=18
  4. fmt.Println(peo)
  5. fmt.Println(peo.Name)
  6. fmt.Println(peo.Age)

6、双等(==)判断结构体中内容是否相等

  1. p1 := People{ "jeff", 18}
  2. p2 := People{ "jeff", 18}
  3. fmt.Printf("%p %p\n", &p1, &p2) //输出地址不同
  4. fmt.Println(p1 == p2) //输出:true

发表评论

表情:
评论列表 (有 0 条评论,312人围观)

还没有评论,来说两句吧...

相关阅读

    相关 golang结构定义

    结构体 Go 语言通过用自定义的方式形成新的类型,结构体是类型中带有成员的复合类型。Go 语言使用结构体和结构体成员来描述真实世界的实体和实体对应的各种属性。 Go...

    相关 golang结构实例化

    结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存,因此必须在定义结构体并实例化后才能使用结构体的字段。 实例化就是根据结构体定义的格式创建一份与格

    相关 golang结构体内嵌结构

    内嵌结构体 结构体可以包含一个或多个匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型也就是字段的名字。匿名字段本身可以是一个结构体类型,即结

    相关 golang 结构简介

    Go 通过类型别名(alias types)和结构体的形式支持用户自定义类型,或者叫定制类型。试图表示一个现实世界中的实体。 结构体由一系列命名的元素组成,这些元素又被称为字