go开发过程中踩的坑

背景:因Linux下无界面,程序开发和简单的调试在Windows上进行,程序运行在Linux上进行。

一、环境搭建

  • 1.enable go modules integration

激活这个选项以启用代码中依赖的第三方包

go modules的解释如下
默认模式(未设置该环境变量或 GO111MODULE=auto):Go 命令行工具在同时满足以下两个条件时使用 Go Modules:
当前目录不在 GOPATH/src/ 下;
在当前目录或上层目录中存在 go.mod 文件。
GOPATH 模式(GO111MODULE=off):Go 命令行工具从不使用 Go Modules。相反,它查找 vendor 目录和 GOPATH 以查找依赖项。
Go Modules 模式(GO111MODULE=on):Go 命令行工具只使用 Go Modules,从不咨询 GOPATH。GOPATH 不再作为导入目录,但它仍然存储下载的依赖项(GOPATH/pkg/mod/)和已安装的命令(GOPATH/bin/),只移除了 GOPATH/src/。
引用—https://www.sulinehk.com/post/go-modules-details/
这个enable的功能相当于执行了go env -w GO111MODULE=on,如果在gopath下的工程里面激活这个,那么会出现main包找不到的问题

  • 2.go proxy

Windows下,在软件中配置环境变量,配置的地方有多个,我配置了很多,具体不知道哪个生效了,环境变量为 GOPROXY = “https://goproxy.cn”
Linux下,因为是命令行模式,所以直接 go env -w GOPROXY=“https://goproxy.io,direct” 就行,如果go命令在sudo下运行,那么sudo go env -w GOPROXY=“https://goproxy.io,direct” 就行。
引用–https://goproxy.cn/

二、开发

1.os.O_WRONLY

在Windows下这个属性不用加也能写文件,但是在Linux下一定要加这个属性才能写

2.<-chan int

并不是在定义时读取,而是定义了一个只读管道
<-chan int 像这样的只能接收值,即只能从管道中读取数据,b := <-a
chan<- int 像这样的只能发送值,只能写管道,a<-12

3.封装命令行执行功能时出现获取不到命令行输出的问题

伪代码如下

func (t
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值