package main
import (
"fmt"
"bufio"
"os"
"strconv"
)
func main() {
mp := make(map[int]string)//make a mapping
in := bufio.NewScanner(os.Stdin)
fmt.Println("Limit and Enter Strings")
in.Scan()
n := in.Text()
num, err := strconv.Atoi(n)
fmt.Println(err)
for i:=0; i<=num;i++ {
in.Scan()
mp[i] = in.Text()
}
fmt.Println(mp)
}
/* Output Limit and Enter Strings
5
<nil>
one
two
three
four
five
six
map[3:four 4:five 5:six 0:one 1:two 2:three]*/
该程序用于进行从int到字符串的映射。当我以顺序格式输入数字时,它将以错误的顺序打印映射。
答案 0 :(得分:1)
Go提供了实现哈希表的内置地图类型。
在具有范围循环的地图上进行迭代时,迭代顺序为 未指定,并且一次迭代不能保证相同 到下一个。从Go 1开始,运行时将地图迭代顺序随机化,如下所示: 程序员依靠先前版本的稳定迭代顺序 实施。如果您需要稳定的迭代顺序,则必须 维护一个指定该顺序的单独数据结构。这个 示例使用单独的键排序片来打印map [int] string 按关键顺序:
导入“排序”
regressor.fit(X_train, y_train, epochs = 100, batch_size = 32)
答案 1 :(得分:1)
Go语言的地图未按顺序进行迭代(有关更多信息,请查看https://blog.golang.org/go-maps-in-action)。这就像一个哈希。如果需要订购,建议您考虑将键存储在切片中(除了将键值对存储在地图中),然后当您需要按输入的顺序打印时,遍历切片以获取键,然后从哈希中检索每个键的值。