失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Go语言学习笔记(8)——包和结构体

Go语言学习笔记(8)——包和结构体

时间:2023-10-05 09:11:35

相关推荐

Go语言学习笔记(8)——包和结构体

—— 每个可执行的应用程序必须包含一个主函数,它是执行的入口点。主函数应该存在main包中。

结构体: 通过.操作符访问结构体的各个成员!

1. 定义结构体类型person:

type person struct{ name stringage int }

使用结构体类型定义结构体变量:

P := person{ "星星", 22 } //按顺序初始化

P := person{ age:22, name:"星星" } //使用键值对方式,顺序可以任意

P := new(person); P.age = 22; P.name = "星星" //new方式,未设置初始值时采用默认初始值

2. 结构体指针: 存储结构体变量的地址,也可以通过.操作符访问结构体变量的各个成员

var pointer_name *person

3. 匿名字段(类似继承): 不仅仅可以是结构体类型哦,所有的内置类型和自定义类型都可以作为匿名字段。

type Human struct {name stringage intweight float32}​type Student struct {Human//匿名字段,代表Student包含Human的所有字段/成员special string}此时对Student实例化: mark := Student{Human{"Mark", 22, 100.0}, "Computer Science"} 注意:可以使用.调用所有属性值(包括匿名字段中的属性),也可以mark.Human = Huamn{"Mark", 22, 100}; mark.Human.age = 0

4. 结构体嵌套

type Address struct {city, state string}type Person struct {name stringage intaddress Address //结构体类型变量作另一个结构体的成员} ​func main() {var p Personp.name = "Naveen"p.age = 50p.address = Address {city: "Chicago",state: "Illinois",}fmt.Println("Name: ", p.name)fmt.Println("City: ", p.address.city)

}

5. 导出结构体和导出字段:

如果结构体类型以大写字母开头,那么它就是一个导出类型,可以从其它包中对它进行访问;类似,如果结构体中的字段以大写字母开头,也可以在其它包中访问它们。

在computer目录下,创建文件spec.go

package computertype Spec struct { //exported structMaker string //exported fieldmodel string //unexported fieldPrice int }

创建main.go 文件

import "../structs/computer"//或 import "./computer"或者 import "根目录"import "fmt"func main() {var spec computer.Specspec.Maker = "apple"spec.Price = 50000fmt.Println("Spec:", spec)}

目录结构如下:

src

structs

computer

spec.go

main.go

6.结构体的比较:

结构体是值类型,如果每个字段都具有可比性,则结构体就是可比较的

如果两个结构体变量对应字段的值都是相等的,则它们就是相等的!

如果觉得《Go语言学习笔记(8)——包和结构体》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。