英文:
read flag argument value ip address
问题
我正在尝试从参数中读取一个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)
执行命令如下:
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:
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)
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()
。以下是一个完整可运行的示例:
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)
}
请注意,这是一个使用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:
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)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论