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

我的问题是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变量


冉冉说
浏览 293回答 2
2回答

吃鸡游戏

您可以在构建期间使用更改变量go run -ldflags="-X..。标志。在此示例中,将ip更改为代码开头的变量。var&nbsp;IP&nbsp;=&nbsp;"<default_ip>"然后,您可以在其余代码中引用该变量。然后使用go&nbsp;run&nbsp;-ldflags="-X&nbsp;<package>.IP&nbsp;<new_ip_address>"&nbsp;program.go因此,如果您的软件包是main,程序名称是main.go,并且新IP是0.0.0.0,则可以运行go&nbsp;run&nbsp;-ldflags="-X&nbsp;main.IP&nbsp;0.0.0.0"&nbsp;program.go我在测试中使用了这个(带有=符号,因为它出错了)go&nbsp;run&nbsp;-ldflags="-X&nbsp;main.who=0.0.0.0"&nbsp;program.go您可以在此处阅读此文章以获取更多信息
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go