Go中的map如何实现顺序读取-面试题

1,参考代码

package main

import (
	"errors"
	"fmt"
	"sort"
)

//程序入口
func main() {
	sortTemp := map[string]int{
		"hello":   0,
		"country": 1,
		"water":   9,
		"main":    3,
	}
	data, err := sortData(sortTemp)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(data)
}

//功能函数
func sortData(sortTemp map[string]int) (map[string]int, error) {

	if len(sortTemp) <= 0 {
		return map[string]int{}, errors.New("data cannot empty")
	}

	var keys []string
	for k := range sortTemp {
		keys = append(keys, k)
	}

	sort.Strings(keys)

	res := make(map[string]int)
	for _, k := range keys {
		res[k] = sortTemp[k]
	}
	return res, nil
}

2,运行结果

map[country:1 hello:0 main:3 water:9]

你可能感兴趣的:(GOLAND,golang,开发语言,后端)