This code does not work. It complains that j.Bar is a "non-name":
package main
import "fmt"
import "os"
type foo struct {
Bar string
Baz int
}
func main() {
var j foo
// this next line fails with "non-name j.Bar on left side of :="
j.Bar, ok := os.LookupEnv("SOME VAR")
if ( ! ok ) {
panic("lookup failed!")
}
fmt.Printf("j.Bar is now %s
",j.Bar)
}
Now I can change it easily to work:
package main
import "fmt"
import "os"
type foo struct {
Bar string
Baz int
}
func main() {
var j foo
val, ok := os.LookupEnv("SOME VAR")
if ( ! ok ) {
panic("lookup failed!")
}
j.Bar = val
fmt.Printf("j.Bar is now %s
",j.Bar)
}
I'm really puzzled by the "non-name" error. j.Bar is a string. os.LookupEnv() returns a string as its first value. So what is the problem with taking a string and putting it into a string variable?