今天就跟大家聊聊有关golang中结构体和方法的应用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

结构体用来定义复杂的数据结构,存储很多相同的字段属性
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()
}看完上述内容,你们对golang中结构体和方法的应用有进一步的了解吗?如果还想了解更多相关内容,欢迎关注创新互联成都网站设计公司行业资讯频道,感谢各位的阅读。
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
新闻名称:golang中结构体和方法的应用-创新互联
分享路径:http://www.jxjierui.cn/article/hppig.html


咨询
建站咨询
