golang 中的参数处理

Argument Processing in golang

我将向 运行 我的 go 程序发出以下命令。

go run app.go 3001-3005

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

我的主函数的这一部分处理这个参数。

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.argsreturn是什么数据类型? 我尝试将其转换为字符串然后拆分。不起作用。 请让我知道哪里出了问题?

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

检查os.Args有足够的元素后,使用:

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