读取标志参数值 IP 地址

huangapple go评论104阅读模式
英文:

read flag argument value ip address

问题

我正在尝试从参数中读取一个IP地址:

  1. var ipaddress_string string
  2. flag.StringVar(&ipaddress_string, "ip", "127.0.0.1", "an ip string var")
  3. ipaddress := net.ParseIP(ipaddress_string)
  4. fmt.Println(ipaddress)

执行命令如下:
app -ip=10.0.0.1
或者
app -ip="10.0.0.1"

但是始终输出的是127.0.0.1?

英文:

I am trying to read an ip address from arguments:

  1. var ipaddress_string string
  2. flag.StringVar(&ipaddress_string, "ip", "127.0.0.1", "an ip string var")
  3. ipaddress := net.ParseIP(ipaddress_string)
  4. fmt.Println(ipaddress)

Executing with:<br>
app -ip=10.0.0.1 <br>
or <br>
app -ip="10.0.0.1"

But 127.0.0.1 always come out?

答案1

得分: 2

根据文档,在将所有标志绑定到变量之后,需要调用flags.Parse()。以下是一个完整可运行的示例:

  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "net"
  6. )
  7. func main() {
  8. var ipaddress_string string
  9. flag.StringVar(&ipaddress_string, "ip", "127.0.0.1", "an ip string var")
  10. flag.Parse()
  11. ipaddress := net.ParseIP(ipaddress_string)
  12. fmt.Println(ipaddress)
  13. }

请注意,这是一个使用Go语言编写的示例代码,用于解析命令行标志并打印IP地址。

英文:

According to the docs, you need to make a call to flags.Parse() after binding all flags to variables. The following is a complete, runnable example:

  1. package main
  2. import (
  3. &quot;flag&quot;
  4. &quot;fmt&quot;
  5. &quot;net&quot;
  6. )
  7. func main() {
  8. var ipaddress_string string
  9. flag.StringVar(&amp;ipaddress_string, &quot;ip&quot;, &quot;127.0.0.1&quot;, &quot;an ip string var&quot;)
  10. flag.Parse()
  11. ipaddress := net.ParseIP(ipaddress_string)
  12. fmt.Println(ipaddress)
  13. }

huangapple
  • 本文由 发表于 2015年4月1日 03:38:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/29377095.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定