GO开发注意

本文介绍了Go语言中遇到的常见问题,如Redis订阅数组、解析动态JSON、全局DB操作、gomod管理、Linux打包设置、log.Fatal使用、CentOS7进程检测和nohup日志输出。提供了相应的解决方案。
摘要由CSDN通过智能技术生成

1、在订阅redis消息队列主题或者其他中间件,需要把某个数组的全部字符串进行订阅或者处理?
解决:var target []string = make([]string, 3)
查看对应中间件的方法中某个参数是不是param ... string,后续在该方法中调用数组
target...作为参数

2、某个json节点里面有多个内容,怎么获取这个节点的动态内容?

解决:在定义结构体的时候,这个json节点可以定义成map[string] interface{}类型

3、定义一个全局可操作对象,例如mysql的DB操作?

解决:在写某个go文件的时候,定义var DB *gorm.DB

之后在某个方法里面去把这个DB实例化,

func InitDB() {

      DB = sss.newDB

}

4、在使用go语言的时候,配置出现问题,每次都需要go mod vendor在项目下新建一个vendor文件夹才能运行?

解决:在cmd下配置go的env环境

go env -w “GOFLAGS”=“-mod=mod”

5、怎么把项目打包运行在Linux环境?

解决:在项目的路径下配置

go env -w GOOS=linux
go env -w GOARCH="amd64"
go build

6、当GO语言执行程序的log.Fatal(err)方法?

解决:程序会中断退出,不能使用Fatal方法。

7、将GO语言打包到CentOs7系统运行,通过定时任务判断打包程序进程是否存在来启动失败?

解决:centos7系统定时任务的用户环境配置有问题,常规脚本ps -fe | grep test等命令无法准确查出test程序的进程个数,从而无法判断是否启动test程序,需要使用pidof -c test命令。

8、GO语言打包程序使用nohup命令运行在服务器,无法把程序输出到指定文件?

解决:nohup /path/to/your/compiled/go/program/test > /var/log/myprogram.log 2>&1 &

该命令可以输出test程序到log文件,但是需要GO语言的log包的方法去打印自己想要的输出才可以;fmt包的方法是属于终端输出,无法输出到自己指定的log文件。

9、GO语言开发串口通信程序问题?

解决:github.com/tarm/goserial这个库可以开发对应串口通信程序,和window创建的模拟串口可以收发指令,但是部署在Linux服务器里面和真实的485线通信接口无法建立通信互发接收数据,这个框架之前没有解决;后面采用的是github.com/jacobsa/go-serial/serial这个框架,在window的虚拟串口可以使用,部署在Linux服务器也可以和真实的串口社保进行通信采集设备数据

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crud-boy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值