为了账号安全,请及时绑定邮箱和手机立即绑定

为什么 Go 的包标志使用指针?

为什么 Go 的包标志使用指针?

Go
动漫人物 2022-05-23 15:44:08
考虑以下代码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个赞

这是因为它们需要在创建后被赋值。动作顺序为:

  1. 创建变量var n = flag.Bool("n", false, "omit trailing newline")现在的值是假的。

  2. 用 赋值flag.Parse()。变量现在被赋值为命令行参数。


查看完整回答
反对 回复 2022-05-23
  • 1 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号