go - 如何将切片和数组组合成地图
问题描述
我正在尝试在 Go 中创建一个莫尔斯电码地图。我该怎么做呢?如果这样更容易的话,我也可以将一个切片转换为一个数组。
alphabet := []string{}
for i := 'A'; i <= 'Z'; i++ {
alphabet = append(alphabet, string(i))
}
fmt.Println(alphabet)
morseSlice := [26]string{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."}
// convert to map that maps letters to morse
var morseDict map[string]string
for i := 0; i > len(morseSlice); i++ {
morseDict[alphabet[i]] = morseSlice[i]
}
fmt.Println(morseDict)
但我的地图是空的。我究竟做错了什么?
解决方案
您的代码将引发错误assignment to entry in nil map
。要解决这个问题,您需要对其进行初始化。
elementMap := make(map[string]string) //Initialize
并且您的条件应该更改为,less than
或者您可以使用range
for i, ele := range alphabet {
elementMap[ele] = morseSlice[i]
}
推荐阅读
- android - Where 和 where-not 指定 3d 模型缩放?
- git - “git存档”之后的电子邮件通知?
- wpf - 设置属性元素的属性
- sql-server - 需要在所有非系统数据库上运行存储过程
- python - OpenCV 找不到棋盘角
- java - java.sql.SQLException:没有这样的列:接受sql查询后
- rebus - Rebus Pub Sub:检索订阅者的标头
- android-studio - Android Studio 构建变体问题
- angularjs - 如何在 CKEditor 自定义插件中访问 AngularJS 服务/工厂
- javascript - Nodejs firesbase firestore 不使用 admin sdk 检索任何数据