首页后端开发其他后端知识go语言中的结构体与方法应该如何学习

go语言中的结构体与方法应该如何学习

时间2024-03-27 04:14:03发布访客分类其他后端知识浏览389
导读:这篇文章分享给大家的内容是关于go语言中的结构体与方法应该如何学习,本文介绍得很详细,内容很有参考价值,希望可以帮到有需要的小伙伴,接下来就让小编带领大家一起了解看看吧。 结构体用来定义复杂的数据结构,存储很多相同的字段...
这篇文章分享给大家的内容是关于go语言中的结构体与方法应该如何学习,本文介绍得很详细,内容很有参考价值,希望可以帮到有需要的小伙伴,接下来就让小编带领大家一起了解看看吧。


结构体用来定义复杂的数据结构,存储很多相同的字段属性

1、结构体的定义以及简单实用

package main

import (
    "fmt"
)

func main() {

    type Student struct {
 //定义结构体
        name string
        age  int
    }

    s1 := new(Student) // 定义指向结构体的指针
    s1.name = "xiaomu"
    s1.age = 10
    fmt.Printf("name:%s\nage:%d\n", s1.name, s1.age)
}
    

结构体定义的三种方式,例如上面的Student类型,有如下方式定义

①var s1 Student 在内存中直接定义一个结构体变量

②s1 := new(Student) 在内存中定义一个指向结构体的指针

③s1 := & Student{ } 同上

通过以下方式获取存储的值

①s1.name

②s1.name或者(*s1).name

③同上

2、struct中的“构造函数”,称之为工厂模式,见代码

package main

import (
    "fmt"
)

type Student struct {
 //声明结构体
    Name string
    Age  int
}


func NewStudent(name string, age int) *Student {
     // 返回值指向Student结构体的指针
    return &
Student{

        Name: name,
        Age:  age,
    }

}


func main() {

    s1 := NewStudent("xiaomu", 123) // 声明并且赋值指向Student结构体的指针
    fmt.Printf("name: %s\nage: %d", s1.Name, s1.Age)
}

3、特意声明注意事项!!!

结构体是值类型,需要使用new分配内存

4、匿名字段,直接看下面代码

package main

import (
    "fmt"
)

func main() {

    type Class struct {

        ClassName string
    }

    type Student struct {
 //定义结构体
        name  string
        age   int
        Class // 定义匿名字段,继承了该结构体的所有字段
    }

    s1 := new(Student) // 定义指向结构体的指针
    s1.ClassName = "xiaomu"
    fmt.Printf("ClassName:%s\n", s1.ClassName)
}

struct的方法

1、在struct中定义方法并且使用

package main

import (
    "fmt"
)

type Student struct {
 //定义结构体
    name string
    age  int
}


func (stu *Student) OutName() {
 // 定义Student方法
    fmt.Println(stu.name)
}


func main() {

    s1 := new(Student) // 定义指向结构体的指针
    s1.name = "xaiomu"
    s1.OutName()
}

2、结构体继承结构体,其中被继承结构体的方法全部为继承结构体吸收

package main

import (
    "fmt"
)

type ClassName struct {

    className string
}


func (cla *ClassName) OutClassName() {

    fmt.Println(cla.className)
}


type Student struct {
 //定义结构体
    name      string
    age       int
    ClassName // 继承ClassName结构体的所有
}


func (stu *Student) OutName() {
 // 定义Student方法
    fmt.Println(stu.name)
}


func main() {

    s1 := new(Student) // 定义指向结构体的指针
    s1.className = "xiaomu"
    s1.OutClassName()
}
    

现在大家对于go语言中的结构体与方法应该如何学习的内容应该都清楚了吧,希望大家阅读完这篇文章能有所收获。最后,想要了解更多go语言中的结构体与方法应该如何学习的知识,欢迎关注网络,网络将为大家推送更多相关知识点的文章。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

go语言

若转载请注明出处: go语言中的结构体与方法应该如何学习
本文地址: https://pptw.com/jishu/653972.html
golang如何删除文件,有什么简单的方法 用Bootstrap怎么样写错误提示,代码是什么

游客 回复需填写必要信息