学习golang(day 7)- 方法、接口、包管理 2022-05-21 14:39:00 编程 golang 暂无评论 333 次阅读 1760字 修改时间:2022-05-22 21:30:47 #方法 golang 的方法是一种特殊的函数,定义在 struct 之上的,方法就是有接收者的函数。 相当于把“类”的属性和方法分开来写了,所以需要在方法上绑定到所属的结构体上 语法为:在函数func和函数名称之间指定所属的结构体,看示例 **示例:yum:** ```go // 结构体 type Person struct { name string } // 方法,绑定到 Person 结构体上 func (person Person) eat() { fmt.Printf("person: %v\n", person) } func main() { tom := Person{ name: "小明", } // 结构体.方法 (类似于 类.方法) tom.eat() } ``` ------------ #接口 golang 中的接口可以用来实现面向对象的一些特征 **注意:** 接口中定义的抽象方法,必须要全部实现 一个类型可以实现多个接口 多个类型可以实现同一个接口 **示例** ```go // 宠物接口,吃饭、睡觉方法 type Pet interface { eat() sleep() } // 狗 type Dog struct { } // 狗实现吃饭接口 func (dog Dog) eat() { fmt.Println("dog eat..") } // 狗实现睡觉接口 func (dog Dog) sleep() { fmt.Println("dog sleep..") } // 猫 type Cat struct { } // 猫实现吃饭接口 func (cat Cat) eat() { fmt.Println("cat eat..") } // 猫实现睡觉接口 func (cat Cat) sleep() { fmt.Println("cat sleep..") } // 养宠物函数 func care(pet Pet) { pet.eat() pet.sleep() } func main() { cat := Cat{} dog := Dog{} care(cat) care(dog) } ``` ------------ #包 一个文件夹代表一个包,一个文件夹下可能有多个文件,那么一般来说,该文件夹下的多个文件都属于同一个包,即多个文件的包名一致。 如果有子目录,那子目录和父目录完全是两个包 一个包如果想要引用另一个包中的函数,需要先执行**go biul** 命令 然后使用 import 导入该包 ```go import ("项目名称/包名") ``` **注意:**对外提供访问的函数名称,首字母要大写。import 后通过 包名.函数 的方式调用。 ------------ #包管理(go mod) **go mod的使用** - 初始化模块 ```go go mod init <项目名称> ``` - 依赖关系,根据 go.mod 文件 ```go go mod tidy ``` - 将依赖包复制到vendor目录 ```go go mod vendor ``` - 显示依赖关系 ```go go list -m all ``` - 下载依赖 ```go go mod download [path@version] ``` ------------ #总结 到此为止,golang 的基本语法和基本使用就学完了,后面要学一些进阶的玩法,比如:并发、IO、连接数据库等等了,加油,奥利给!! 标签: golang
评论已关闭