gpt4 book ai didi

pointers - 为什么Go的package标志使用指针?

转载 作者:行者123 更新时间:2023-12-01 22:38:27 24 4
gpt4 key购买 nike

考虑 gopl.io/ch2/echo4 中的以下代码

package main

import (
"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()
}
}

我很感兴趣,为什么变量 nsep是指向标志变量而不是普通变量类型的 指针

最佳答案

这是因为在创建之后需要为其分配值。操作顺序为:

  • 创建变量var n = flag.Bool("n", false, "omit trailing newline")现在该值为false。
  • flag.Parse()分配值。现在为变量分配了作为命令行参数传递的值。
  • 关于pointers - 为什么Go的package标志使用指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60736758/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com