go学习1---》结构体和一些其他的东西
1,编译器
(1),VSCode配置
必备插件
- Go (Go Team at Google)
• Go Test Explorer
Go Test Explorer插件通过提供可视化的测试结构、便捷的测试操作以及与编辑器深度集成的体验,
2,fmt
import “fmt”
fmt 是 Format 的缩写,是 Go 语言标准库中用于格式化输入输出的包,就是 Go 语言的 “打印工具包”,用来在控制台显示信息和读取用户输入。
例如:fmt.Println(“成年”)
输出个log都要一个专门包,不知道咋评价
3,:= 符号
age := 25
:= 符号在Go中叫做 “短变量声明”
同时,进行变量类型声明和初始化
4,go的结构体
Go没有传统的"类"概念,但它通过结构体 + 方法 + 接口实现了面向对象编程的核心思想
(1). 封装(通过包实现)
type Person struct {
name string // 小写开头:私有(仅在包内可见)
Age int // 大写开头:公有(包外可见)
}
(2) 组合(代替继承)
type Student struct {Person // 嵌入Person,获得其所有字段和方法studentID string
}
(3)多态(通过,接口实现)别的语言是基于继承来实现,这里 是接口,其实我明白,多态有 啥用
多态其实就是使得同一个方法,不同的结构体,有不同的实现,使得写法更加优美,代码可读性更加高,
// 1. 定义接口 - 所有员工都要实现"工作"这个方法
type Employee interface {Work()
}// 2. 不同员工实现接口
type Chef struct{ name string }
func (c Chef) Work() {fmt.Printf("%s 在烹饪美食\n", c.name)
}type Waiter struct{ name string }
func (w Waiter) Work() {fmt.Printf("%s 在服务顾客\n", w.name)
}// 3. 经理只需要一个通用函数
func makeEmployeeWork(e Employee) {e.Work() // 神奇之处:不管什么员工,都调用Work()
}func main() {employees := []Employee{Chef{"张师傅