Golang 中未定义的地图元素
Undefined map element in Golang
出于某种原因,我收到以下错误
./execTest.go:24: template.datacenter undefined (type map[string]string has no field or method datacenter)
./execTest.go:25: template.datacenter undefined (type map[string]string has no field or method datacenter)
这是我的 Go 代码
package main
import (
"fmt"
)
var template map[string]string
func main() {
template := map[string]string{
"cluster": "",
"datacenter": "The_Datacenter",
"host": "",
"password": "",
"username": "",
"vm_name": "",
}
args := []string{
"--acceptAllEulas",
"--compress=9",
}
if template.datacenter != "" {
args = append(args, fmt.Sprintf("--datacenter=%s", template.datacenter))
}
fmt.Println(template)
}
template
是地图,不是 struct
。如果要访问 datacenter
字符串,则需要编写 template["datacenter"]
.
http://play.golang.org/p/M0PHGx8R8g
package main
import (
"fmt"
)
var template map[string]string
func main() {
template := map[string]string{
"cluster": "",
"datacenter": "The_Datacenter",
"host": "",
"password": "",
"username": "",
"vm_name": "",
}
args := []string{
"--acceptAllEulas",
"--compress=9",
}
if template["datacenter"] != "" {
args = append(args, fmt.Sprintf("--datacenter=%s", template["datacenter"]))
}
fmt.Println(template)
}
出于某种原因,我收到以下错误
./execTest.go:24: template.datacenter undefined (type map[string]string has no field or method datacenter)
./execTest.go:25: template.datacenter undefined (type map[string]string has no field or method datacenter)
这是我的 Go 代码
package main
import (
"fmt"
)
var template map[string]string
func main() {
template := map[string]string{
"cluster": "",
"datacenter": "The_Datacenter",
"host": "",
"password": "",
"username": "",
"vm_name": "",
}
args := []string{
"--acceptAllEulas",
"--compress=9",
}
if template.datacenter != "" {
args = append(args, fmt.Sprintf("--datacenter=%s", template.datacenter))
}
fmt.Println(template)
}
template
是地图,不是 struct
。如果要访问 datacenter
字符串,则需要编写 template["datacenter"]
.
http://play.golang.org/p/M0PHGx8R8g
package main
import (
"fmt"
)
var template map[string]string
func main() {
template := map[string]string{
"cluster": "",
"datacenter": "The_Datacenter",
"host": "",
"password": "",
"username": "",
"vm_name": "",
}
args := []string{
"--acceptAllEulas",
"--compress=9",
}
if template["datacenter"] != "" {
args = append(args, fmt.Sprintf("--datacenter=%s", template["datacenter"]))
}
fmt.Println(template)
}