【Golang系列】-结构体

2022-03-16

结构体
go语言没有面向对象的概念,但是可以使用结构体来实现,面向对象编程的一些特性,如:继承,组合等特性

结构体的定义:

结构体的抵不过一和类型定义类似,多了一struct关键字,语法:

type struct_variable_type struct{
    nember definition
}

  • type:结构体定义关键字
  • struct_variable_type:结构体 类型名称
  • struct:结构体定义关键字
  • nember definition:成员定义

示例:

一个人的结构体

type Person struct{
    id int
    name string
    age int
    email string
}

相同类型的可以合并一行

type Person struct {
    id, age     int
    name, email string
}

声明一个结构体变量

        var tom Person
        fmt.Println(tom)
        kite := Person{}
        fmt.Println(kite)

访问结构体成员

package main

import "fmt"

func main() {
    type Person struct {
        id, age     int
        name, email string
    }
    var tom Person
    tom.id = 1
    tom.name = "caolihui"
    tom.age = 30
    tom.email = "tom@mail.com"
    fmt.Println(tom)

}

匿名结构体:

如果 结构体是临时使用,不用起名字可以直接使用

package main

import "fmt"

func main() {
    var dog struct {
        id   int
        name string
    }
    dog.id = 1
    dog.name = "tom"
    fmt.Println(dog)
}