总结一下常用的go 指令

一 go get

通过代码管理工具远程拉取或更新代码包及其依赖包,并自动完成编译与安装。
使用示例:
go get -v -d xxxxxx/xxxx/xxx/…
// 代码会下载到 GOPATH 下面对应的目录
// go get 指令相比git clone指令,会下载依赖包
// 对vendor 项目而言,会直接下载vendor里面的项目,意思是即使该目录下代码修改过,
// 你也会下载修改过的代码
-u 递归更新包及其依赖包。
-v 显示指令
-d 只下载不安装

二 golang 包管理工具 govendor

安装:
go get -u -v github.com/kardianos/govendor
使用举例:

#初始化vendor目录
govendor init

#将GOPATH中本工程使用到的依赖包自动移动到vendor目录中
govendor add +external
或使用缩写: govendor add +e 

#从远程仓库添加或更新某个包(不会在 $GOPATH 也存一份)
govendor fetch golang.org/x/net/context
安装指定版本的包
govendor fetch golang.org/x/net/context@=v1  # Get the tag or branch named "v1".
// 更新项目vendor/code.byted.org/videoarch/datasdk目录下的所有文件
// ./...这个表示路径,代表当前目录下所有的文件
govendor fetch -v code.byted.org/videoarch/datasdk/...  

vendor.json 中记录了依赖包信息,该如何拉取更新
govendor sync
go test

go test -count=1 // 禁用test 缓存
go test ./… -v // 测试项目下的所有test函数
go test ./ -v // 测试目录下所有test函数, -v 可以看到详细的输出信息
go test ./ -v -run=xxx // 测试目录下名为XXX的test函数
go build -o XXX xxx.go // 编译并命名XXX的可执行文件 , ./XXX 就可以运行
go run ./xxx.go // 运行名为xxx的文件
// 基准测试,测试aa.go, bb.go里面Gin或HttpMux开头的函数
go test ./aa.go ./bb.go -bench=“Gin|HttpMux”
参考:go test 命令

go mod
  1. go mod init xxx/xx/xx
  2. go test // 测试过程中自动下载
  3. go get -u xxx/xx/xxx@v1.3.1
  4. go get -u // 自动更新项目的所有依赖
  5. go list // 示例:go list -m -versions code.byted.org/kite/kitc,列举出该模块的所有可获取版本
  6. go mod tidy. // 做模块清理
  7. go get -d -v ./… // 自动下载(-d标志只下载代码包,不执行安装命令;-v打印详细日志和调试日志。这里加上这个标志会把每个下载的包都打印出来;./…这个表示路径,代表当前目录下所有的文件)。
  8. 依赖问题
    由于众所周知的原因,大陆某些开源包是无法直接下载的,典型的比如:
    golang.org/xx 下的一系列包。
    以往在使用go vendor 管理项目依赖的时候,可以手动下载,并重名的方法来绕过这一问题,比如
    git clone https://github.com/golang/text $GOPATH/src/golang.org/x/text
    换用go mod 管理项目后,可以通过设置 Go module proxy 的办法来进行处理.

另外考虑到已有项目可能继续使用go vendor, 所以最好

export GO111MODULE=auto

这样在GOPATH/src目录下,vendor 可以继续正常使用

  1. go mod download
    将依赖下载至本地, 相比go get , 推荐使用这个命令。

参考 :
go mode 使用
go mode proxy
go mode 使用说明
官方使用文档

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: GO语言(或Golang)是一种开源的、并发支持、编译型的编程语言,常用于构建高性能和可靠性的软件应用。OPCClient.exe是一个OPC客户端应用程序,用于与OPC服务器进行通信并获取数据。 要实现GO语言和OPCClient.exe的互通,可以采用以下步骤: 1. 首先,需要使用GO语言中的网络编程库创建一个TCP客户端,以便连接到OPCClient.exe运行的主机。可以使用标准库中的"net"包来实现。 2. 接下来,在GO语言的客户端代码中,使用TCP连接向OPCClient.exe运行的主机发送请求。可以使用Socket连接参数指定与OPCClient.exe的通信端口号和IP地址。 3. 在OPCClient.exe中,需要监听指定的端口号,接收来自GO语言客户端的请求。可以使用OPCClient.exe自带的Socket编程或者第三方库来实现。 4. 当OPCClient.exe接收到GO语言客户端的请求后,可以根据请求的内容执行相应的操作,如读取OPC服务器的数据,发送数据给GO语言客户端等。 5. 运行完成后,OPCClient.exe可以将结果发送回GO语言客户端。GO语言客户端可以解析接收到的数据,以便进一步处理。 总结起来,GO语言和OPCClient.exe的互通主要依赖于网络编程。通过GO语言的网络编程库和OPCClient.exe的Socket编程,可以建立一个双向的通信通道,实现数据的传输和交换。需要注意的是,在实际操作中,还需了解OPCClient.exe提供的接口和通信协议,并相应地处理异常和错误情况。 ### 回答2: 要使Go语言和opcclient.exe互通,可以使用以下方法: 1. 使用Go语言编写一个OPC客户端程序,通过OPC DA或OPC UA协议与opcclient.exe进行通信。Go语言提供了一些库和工具,如Go-OPC,opcua库等,可以用于与OPC服务器进行通信。通过编写Go代码,您可以连接到opcclient.exe并通过OPC协议进行数据交换。 2. 使用Go语言的os/exec包,您可以在Go代码中执行外部命令,例如opcclient.exe。使用该包,您可以编写代码来启动opcclient.exe进程,并通过标准输入和输出流与其进行通信。这样,您可以编写Go代码来发送指令、接收结果和处理数据。 3. 在Go语言中使用网络编程,使用socket或HTTP等协议与opcclient.exe进行通信。您可以编写Go代码来创建一个与opcclient.exe进行数据交换的网络连接。通过定义适当的协议和消息格式,您可以实现双向通信,并在Go代码中处理收发的数据。 需要注意的是,要实现Go语言和opcclient.exe互通,你需要确保opcclient.exe程序可以被Go代码访问到,并且两者之间使用的通信协议和数据格式是兼容的。 ### 回答3: GO语言和OPC客户端之间可以通过以下几种方法进行互通: 1. 使用第三方库:可以使用一些在GO语言中可用的第三方库来访问OPC服务器。这些库提供了用于连接到和与OPC服务器进行通信的API。通过使用这些库,GO程序可以访问和读取OPC服务器中的数据,并且还可以发送写入请求。 2. 使用C语言DLL:GO语言可以调用C语言的动态链接库(DLL)。可以创建一个C语言的DLL来实现与OPC服务器的通信,并将其与GO程序进行动态链接。GO程序可以通过调用DLL提供的函数来访问和操作OPC服务器数据。 3. 使用网络协议:GO语言具有强大的网络编程功能,可以通过TCP/IP或其他网络协议与OPC服务器进行通信。在GO程序中,可以使用网络套接字编程方法来建立与OPC服务器的连接,并发送/接收数据。 总之,GO语言和OPC客户端可以通过使用第三方库、与C语言DLL交互或通过网络协议相互通信。这些方法可以使GO程序能够与OPC服务器进行数据交换和通信。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值