golang结构体

2019-12-31  本文已影响0人  程序小白菜

定义

结构体是由一系列具有相同类型或不同类型的数据构成的数据集合

结构体的定义

type struct_variable_type struct {
member definition
member definition
...
member definition
}

variable_name := structure_variable_type {value1, value2...valuen}

variable_name := structure_variable_type { key1: value1, key2: value2..., keyn: valuen}

package main

import "fmt"

type Student struct {
    name string
    age int
    score int
}

func main() {
    fmt.Println(Student{"Lucy", 18, 90})

    //可以使用key => value格式
    fmt.Println(Student{name: "Jim", age: 18, score:80})

    //忽略的字段为0或空
    fmt.Println(Student{name: "David", age: 19})
}

访问结构体成员

如果要访问结构体成员,需要使用点号 . 操作符,格式为

结构体.成员名

package main

import "fmt"

type Student struct {
    name string
    age int
    score int
}

func main() {
    var stu1 Student
    var stu2 Student
    
    /* stu1 描述*/
    stu1.name = "Jim"
    stu1.age = 18
    stu1.score = 90
    
    /* 打印stu1 信息*/
    fmt.Printf("stu1 name: %s\n", stu1.name)
    fmt.Printf("stu1 age: %d\n", stu1.age)
    fmt.Printf("stu1 score: %d\n", stu1.score)
    
    /* stu2 描述*/
    stu2.name = "Lucy"
    stu2.age = 18
    stu2.score = 80

    /* 打印stu2 信息*/
    fmt.Printf("stu2 name: %s\n", stu2.name)
    fmt.Printf("stu2 age: %d\n", stu2.age)
    fmt.Printf("stu2 score: %d\n", stu2.score)
}

结构体作为函数参数

可以像其他数据类型一样将结构体类型作为参数传递给函数。并以以上实例的方式访问结构体变量:

package main

import "fmt"

type Student struct {
    name string
    age int
    score int
}

func main() {
    var stu1 Student
    var stu2 Student

    /* stu1 描述*/
    stu1.name = "Jim"
    stu1.age = 18
    stu1.score = 90

    /* 打印stu1 信息*/
    printStu(stu1)

    /* stu2 描述*/
    stu2.name = "Lucy"
    stu2.age = 18
    stu2.score = 80

    /* 打印stu2 信息*/
    printStu(stu2)
}

func printStu(stu Student) {
    fmt.Printf("stu name: %s\n", stu.name)
    fmt.Printf("stu age: %d\n", stu.age)
    fmt.Printf("stu score: %d\n", stu.score)
}

结构体指针

var struct_pointer *Student

struct_pointer = &Student

struct_pointer.title

package main

import "fmt"

type Student struct {
    name string
    age int
    score int
}

func main() {
    var stu1 Student
    var stu2 Student

    /* stu1 描述*/
    stu1.name = "Jim"
    stu1.age = 18
    stu1.score = 90

    /* 打印stu1 信息*/
    printStu(&stu1)

    /* stu2 描述*/
    stu2.name = "Lucy"
    stu2.age = 18
    stu2.score = 80

    /* 打印stu2 信息*/
    printStu(&stu2)
}

func printStu(stu *Student) {
    fmt.Printf("stu name: %s\n", stu.name)
    fmt.Printf("stu age: %d\n", stu.age)
    fmt.Printf("stu score: %d\n", stu.score)
}
上一篇 下一篇

猜你喜欢

热点阅读