dongqu3623 2014-04-21 08:21
浏览 172
已采纳

如何在golang中正确使用os.Args?

I need to use config in my go code and I want to load config path from command-line. I try:

if len(os.Args) > 1 { 
        configpath := os.Args[1]
        fmt.Println("1") // For debug
    } else {
        configpath := "/etc/buildozer/config"
        fmt.Println("2")
    }

Then I use config:

configuration := config.ConfigParser(configpath)

When I launch my go file with parameter (or without) I receive similar error

# command-line-arguments
src/2rl/buildozer/buildozer.go:21: undefined: configpath

How should I correctly use os.Args?

  • 写回答

1条回答 默认 最新

  • dongyan6503 2014-04-21 08:25
    关注

    Define configPath outside the scope of your if.

    configPath := ""
    
    if len(os.Args) > 1 { 
      configpath = os.Args[1] 
      fmt.Println("1") // For debug 
    } else { 
      configpath = "/etc/buildozer/config"
      fmt.Println("2") 
    }
    

    Note the 'configPath =' (instead of :=) inside the if.

    That way configPath is defined before and is still visible after the if.

    See more at "Declarations and scope" / "Variable declarations".

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 Llama如何调用shell或者Python
  • ¥20 eclipse连接sap后代码跑出来空白
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案