1Go常用
windows go 升级直接安装在同一目录
接口和实现了接口里方法的结构体 类似于 父类和子类的关系
依赖管理
go module
golang覆盖升级后的问题
在编译时报如下错误:
/usr/local/go/src/runtime/internal/sys/arch.go:27:7: other declaration of StackGuardMultiplier
/usr/local/go/src/runtime/internal/sys/consts.go:16:7: DefaultPhysPageSize redeclared in this block
/usr/local/go/src/runtime/internal/sys/arch.go:36:7: other declaration of DefaultPhysPageSize
/usr/local/go/src/runtime/internal/sys/consts.go:20:7: PCQuantum redeclared in this block
/usr/local/go/src/runtime/internal/sys/arch.go:40:7: other declaration of PCQuantum
/usr/local/go/src/runtime/internal/sys/consts.go:23:7: Int64Align redeclared in this block
/usr/local/go/src/runtime/internal/sys/arch.go:43:7: other declaration of Int64Align```
删除go目录后重新解压,问题解决
安装go配置
#修改 GOBIN 路径(可选)
go env -w GOBIN=$HOME/bin
#打开 Go modules
go env -w GO111MODULE=on
#设置 GOPROXY
go env -w GOPROXY=https://goproxy.cn,direct
https://segmentfault.com/a/1190000020543746
new(T) 返回 T 的指针 *T 并指向 T 的零值。
make(T) 返回的初始化的 T(引用),只能用于 slice,map,channel。
https://zhuanlan.zhihu.com/p/270626496
Select关键字
ch := make(chan int)
quit := make(chan bool)
// timeout
//新开一个协程
// 钓鱼模型
go func() {
for {
// 建模多个钓鱼杆
// 同时读取所有句柄
// 但是一单哪个返回就去执行并进入下一次操作
select {
case num := <-ch:
fmt.Println("num = ", num)
case <-time.After(3 * time.Second): //新建对象,同时等待,如果ch有就执行,再执行After就要从头开始
fmt.Println("超时")
quit <- true
}
}
}() //别忘了()
for i := 0; i < 5; i++ {
ch <- i
time.Sleep(time.Second)
// ch <- i
}
<-quit
fmt.Println("程序结束")
channel 用于函数参数情景
全局变量和channel等价,传参就得channel (goroutine)
Go构建
go build -o goup.exe . # -o 指定输出名字
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?