golang中的参数处理

时间:2016-04-27 19:43:58

标签: rest go arguments command-line-arguments

我将提供以下命令来运行我的go程序。

  

去运行app.go 3001-3005

这应该做的是,在服务器端口3001到3005上运行我的休息api。

我的主要功能的这部分处理这个论点。

func main() { 
ipfile := os.Args[1:]
s := strings.Split(ipfile, "-")
mux := routes.New() 
mux.Put("/:key1/:value1", PutData)
mux.Get("/profile/:key1", GetSingleData) 
mux.Get("/profile", GetData)
http.Handle("/", mix)

这里我将运行for循环并用s [i]替换第一个参数。

http.ListenAndServe(":3000", nil)
}

我得到以下输出:

cannot use ipfile (type []string) as type string in argument to strings.Split

os.args返回什么数据类型? 我尝试将其转换为字符串然后拆分。不行。 请让我知道出了什么问题?

1 个答案:

答案 0 :(得分:3)

如错误所示,ipfile[]string[1:]切片操作将返回切片,即使只有1个元素。

检查os.Args是否包含足够的元素后,请使用:

ipfile := os.Args[1]
s := strings.Split(ipfile, "-")