を反映していないグローバル変数を行く私は、次のコード正しい値
package main
import (
"fmt"
"flag"
)
var outputOnly bool
func something() string {
if outputOnly {
fmt.Println("outputting only")
} else {
fmt.Println("executing commands")
}
return "blah"
}
func main() {
vmoutputonlyPtr := flag.Bool("outputonly",false,"If set it will only output the commands it would execute, naturally without the correct parameter values set.")
flag.Parse()
outputOnly := *vmoutputonlyPtr
if outputOnly {
fmt.Println("outputonly commands will not execute")
}
var blah string
blah = something()
fmt.Println("blah is " + blah)
}
を持っていますが、出力は次のとおりです。
$ ./se -outputonly
outputonly commands will not execute
executing commands
すなわち。関数something()はグローバル変数を認識していますが、その真の値を反映していないようです。これはゴーランでの私の最初の試みです。私は間違って何をしていますか?
':='を使用したので、グローバル変数をシャドウするローカル変数です。既存の変数への代入には '='を使います。 – Carpetsmoker