为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用go命令行更改变量?

如何使用go命令行更改变量?

Go
冉冉说 2021-04-05 09:15:54
我的问题是go run someprogram.go usecomand change_variable=value这可能吗,我该怎么做?import (        "github.com/spf13/cobra"        "fmt"        "math/rand"        "time"        "github.com/brocaar/lorawan"        MQTT "github.com/eclipse/paho.mqtt.golang"        lds "github.com/iegomez/loraserver-device-sim")func mainCmd() *cobra.Command {      return &cobra.Command{          Use: "sensor", RunE: func(cmd *cobra.Command,args []string) error {         ip := "tcp://127.0.0.1:1883"          cmd.Println("O IP da gateway e o port são:",ip)     //Connect to the broker     opts :=MQTT.NewClientOptions() opts.AddBroker(ip) 看到这是我的go文件包含的内容,我想在命令行中构建go文件并执行并更改ip变量
查看完整描述

2 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

您可以在构建期间使用更改变量go run -ldflags="-X..。标志。

在此示例中,将ip更改为代码开头的变量。

var IP = "<default_ip>"

然后,您可以在其余代码中引用该变量。然后使用

go run -ldflags="-X <package>.IP <new_ip_address>" program.go

因此,如果您的软件包是main,程序名称是main.go,并且新IP是0.0.0.0,则可以运行

go run -ldflags="-X main.IP 0.0.0.0" program.go

我在测试中使用了这个(带有=符号,因为它出错了)

go run -ldflags="-X main.who=0.0.0.0" program.go

您可以在此处阅读此文章以获取更多信息


查看完整回答
反对 回复 2021-04-19
  • 2 回答
  • 0 关注
  • 286 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信