Goでpackageに定義した変数を参照できない
Goで自作packageをimportして使うサンプルを書いていて上手くいかなかったのでメモ
こんなpackageをサンプルで書いてmainでimportして使用しようとした。
package gosample var message string = "hello world"
package main import ( "fmt" "gosample" ) func main() { fmt.Println(gosample.message) }
これで実行するとエラーとなってしまう。
$ go run main.go # command-line-arguments ./main.go:9: cannot refer to unexported name gosample.message ./main.go:9: undefined: gosample.message
参照できない。 調べるとgoは大文字で指定した場合にエクスポートされるらしい。 messageをMessageに直すとうまく動いた。