【发布时间】:2019-10-03 04:03:26
【问题描述】:
此代码不起作用。它抱怨 j.Bar 是一个“非名字”:
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\n",j.Bar)
}
现在我可以轻松地将其更改为工作:
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\n",j.Bar)
}
我真的对“非名字”错误感到困惑。 j.Bar 是一个字符串。 os.LookupEnv() returns a string 作为它的第一个值。那么将字符串放入字符串变量有什么问题呢?
【问题讨论】:
标签: go