2015-03-31 90 views
1

我试图读取参数IP地址:读标志参数值IP地址

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

与执行:
应用-ip = 10.0.0.1

应用-ip =“10.0 .0.1“

但是127.0.0.1总是出来?

+2

看起来您需要从[docs](https://golang.org/pkg/flag/)调用'flag.Parse'。 – 2015-03-31 19:44:40

+0

你是如此正确我的朋友:-)谢谢。我能做的比投票更有用吗? – 2015-03-31 19:46:14

+0

您现在可以:-) – 2015-03-31 19:49:33

回答

2

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

package main 

import (
    "flag" 
    "fmt" 
    "net" 
) 

func main() { 
    var ipaddress_string string 
    flag.StringVar(&ipaddress_string, "ip", "127.0.0.1", "an ip string var") 
    flag.Parse() 
    ipaddress := net.ParseIP(ipaddress_string) 
    fmt.Println(ipaddress) 
}