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。

img

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 指定输出名字 
posted @   HiIcy  阅读(273)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
点击右上角即可分享
微信分享提示