go - 如何使用值初始化映射
问题描述
我在 Go 中有一个多线地图创建和值设置。
type Animal struct {
food, locomotion, sound string
}
type AnimalInterface interface {
Eat()
Move()
Speak()
}
animals := make(map[string]Animal)
animals["cow"] = Animal{"grass", "walk", "moo"}
animals["bird"] = Animal{"worms", "fly", "peep"}
animals["snake"] = Animal{"mice", "slither", "hsss"}
我更喜欢一步完成创建和初始化。这不起作用......我应该如何解决它?
animals := map[string]Animal{
"cow": Animal{"grass", "walk", "moo"}
"bird": Animal{"worms", "fly", "peep"}
"snake": Animal{"mice", "slither", "hsss"}
}
编辑 添加逗号
animals := map[string]Animal{
"cow": Animal{"grass", "walk", "moo"},
"bird": Animal{"worms", "fly", "peep"},
"snake": Animal{"mice", "slither", "hsss"}
}
❯ go run animals.go
# command-line-arguments
./animals.go:109:47: syntax error: unexpected newline, expecting comma or }
解决方案
错字。您在地图元素后错过了逗号。
package main
import (
"fmt"
)
type Animal struct {
food, locomotion, sound string
}
type AnimalInterface interface {
Eat()
Move()
Speak()
}
func main() {
animals := map[string]Animal{
"cow": Animal{"grass", "walk", "moo"},
"bird": Animal{"worms", "fly", "peep"},
"snake": Animal{"mice", "slither", "hsss"},
}
fmt.Println(animals)
}
推荐阅读
- ruby-on-rails - 如何使用 Ruby 生成两个地址之间的 IP 地址列表
- php - 将字符和数字之间的字符串拆分为数组PHP
- php - 删除 Woocommerce 帐单字段不会将其从我的帐户帐单地址中删除
- java - ConcreteA 不是抽象的,不会覆盖 InterfaceC 中的抽象方法 doSomething(InterfaceA)
- git - 将深度嵌套的 Rust `Result`s 和 `Option`s 处理重构为更具功能性的风格
- python - 如何控制plotnine中的刻面高度和宽度?
- sql - 根据与另一个表的几何相交将列数据添加到表中 - PostgreSQL
- machine-learning - Gensim 的潜在狄利克雷分配实现
- r - R中的夏令时 - 正确读取时间戳的问题
- amazon-web-services - 从一个 S3 存储桶将 json 转换为 csv 并通过 AWS Lambda 上传到另一个 S3 存储桶