Go语言笔记
俱怀逸兴壮思飞,欲上青天揽明月!
GO语言开发环境配置
这个详细请见此宝藏博客 GO语言开发环境配置
Go Module
go mod 命令
- go mod download 下载依赖的module到本地cache(默认为$GOPATH/pkg/mod目录)
- go mod edit 编辑go.mod文件
- go mod graph 打印模块依赖图
- go mod init 初始化当前文件夹, 创建go.mod文件
- go mod tidy 增加缺少的module,删除无用的module
- go mod vendor 将依赖复制到vendor下
- go mod verify 校验依赖
- go mod why 解释为什么需要依赖 go get 在项目中执行go get命令可以下载依赖包,并且还可以指定下载的版本哦
- 运行go get -u将会升级到最新的次要版本或者修订版本(x.y.z, z是修订版本号, y是次要版本号)
- 运行go get -u=patch将会升级到最新的修订版本
- 运行go get package@version将会升级到指定的版本号version
语法简述
go真是有趣啊QwQ,以此笔记来记录自己学Go的光辉历程!:)
变量声明和赋值: Go语言使用var关键字来声明变量,并使用=操作符来进行赋值。var name string = "Gua"
数据类型: Go语言具有以下基本的数据类型吼吼吼:
- bool:布尔类型,取值为true或false。
- int、int8、int16、int32、int64:整数类型,分别表示不同位数的有符号整数。
- uint、uint8、uint16、uint32、uint64:无符号整数类型。
- float32、float64:浮点数类型。
- string:字符串类型。
- array:数组类型。
- slice:切片类型。
- map:映射类型。
- struct:结构体类型。
控制流: Go语言提供了一些常用的控制流语句,例如条件语句(if)、循环语句(for)、选择语句(switch)。
if语句
if age >= 18 {
fmt.Println("成年人")
} else {
fmt.Println("未成年人")
}
for语句
for i := 0; i < 5; i++ {
fmt.Println(i)
}
switch语句
switch day {
case 1:
fmt.Println("星期一")
case 2:
fmt.Println("星期二")
default:
fmt.Println("其他")
}
函数定义
func add(a, b int) int {
return a + b
}
结构体
type Person struct {
name string
age int
}
func main() {
p := Person{name: "John", age: 30}
fmt.Println(p.name, p.age)
}
小声嘟嘟:初学GO语言真的好不习惯语法233
Go语言的语法特性
开开眼界版
- 首先让小呱雀跃的是Go语言的指针 上学期一直在敲C++,被指针痛击的我,看到他怎能不心动嘿嘿(痴汉笑
func main() {
x := 42
p := &x // p是指向x的指针
fmt.Println(*p) // 输出42,*p表示解引用操作
}
- 切片 对数组的动态封装,允许您创建可变长度的序列 好方便!窝滴弹性数组(流口水
func main() {
numbers := []int{1, 2, 3, 4, 5}
slice := numbers[1:3] // 创建从索引1到2的切片
fmt.Println(slice) // 输出[2 3]
}
- 映射 一种键值对的集合,类似于其他编程语言中的哈希表或字典
func main() {
person := map[string]int{
"John": 28,
"Jane": 24,
}
fmt.Println(person["John"]) // 输出28
}
- 接口 定义了一组方法的契约,类型可以实现这些方法来满足接口的需求
type Shape interface {
area() float64
}
type Circle struct {
radius float64
}
func (c Circle) area() float64 {
return math.Pi * c.radius * c.radius
}
- 并发 Go语言内置支持轻量级的并发,通过goroutines和channels来实现
func main() {
go func() {
fmt.Println("Hello from goroutine")
}()
time.Sleep(time.Second) // 等待一段时间,以保证goroutine执行完毕
}
然后然后然后还有好多好多哒 人生苦短,努力掌握Go语言吧! 加油捏!