2015-03-31 59 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) 
}