考虑以下代码gopl.io/ch2/echo4package mainimport ( "flag" "fmt" "strings")var n = flag.Bool("n", false, "omit trailing newline")var sep = flag.String("s", " ", "separator")func main() { flag.Parse() fmt.Print(strings.Join(flag.Args(), *sep)) if !*n { fmt.Println() }}我很感兴趣为什么变量n和sep是指向标志变量的指针,而不是普通的变量类型。
1 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
这是因为它们需要在创建后被赋值。动作顺序为:
创建变量
var n = flag.Bool("n", false, "omit trailing newline")
现在的值是假的。用 赋值
flag.Parse()
。变量现在被赋值为命令行参数。
- 1 回答
- 0 关注
- 98 浏览
添加回答
举报
0/150
提交
取消