Pointers 为什么Go';s包标志是否使用指针?
请考虑下面的代码Pointers 为什么Go';s包标志是否使用指针?,pointers,go,Pointers,Go,请考虑下面的代码 我感兴趣的是为什么变量n和sep是指向标志变量的指针,而不是普通变量类型。这是因为它们在创建后需要赋值。行动顺序如下: 创建变量var n=flag.Bool(“n”,false,“省略尾随换行符”)该值现在为false 使用flag.Parse()赋值。变量现在被指定为作为命令行参数传递的值 如果不是指针,则flag.Parse无法修改其值。 package main import ( "flag" "fmt" "strings" ) var n
我感兴趣的是为什么变量
n
和sep
是指向标志变量的指针,而不是普通变量类型。这是因为它们在创建后需要赋值。行动顺序如下:
var n=flag.Bool(“n”,false,“省略尾随换行符”)
该值现在为falseflag.Parse()
赋值。变量现在被指定为作为命令行参数传递的值如果不是指针,则flag.Parse无法修改其值。
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()
}
}