zoukankan      html  css  js  c++  java
  • golang 按key字母顺序遍历map

    package main
     
    import (
    	"fmt"
    	"crypto/md5"
    	"math/rand"
    	"sort"
    	"time"
    )
     
    type MapEntryHandler func (string, string)
     
    // func printKeyValue(key string, value string) {
    // 	fmt.Printf("key=%s, value=%s
    ", key, value)
    // }
     
    // 按字母顺序遍历map
    func traverseMapInStringOrder(params map[string]string, handler MapEntryHandler) {
    	keys := make([]string, 0)
    	for k, _ := range(params) {
    		keys = append(keys, k)
    	}
    	sort.Strings(keys)
    	for _, k := range keys {
    		handler(k, params[k])
    	}
    }
     
    func main() {
    	params := map[string]string{}
     
    	params["captchaId"] = "d094d0ba1af"
    	params["validate"] = "17faa76f4a"
    	params["user"] = "mingzhanghui"
    	params["version"] = "1.0"
    	params["timestamp"] = "1553435624624"
    	rand.Seed(time.Now().UnixNano())
    	params["nounce"] = fmt.Sprintf("%d", rand.Int())
    	buff := []byte("gmy12345")
    	params["signature"] = fmt.Sprintf("%x", md5.Sum(buff))
    	
    	// 	traverseMapInStringOrder(params, printKeyValue)
    	traverseMapInStringOrder(params, func (key string, value string) {
    		fmt.Printf("keys=%s, value=%s
    ", key, value)
    	})
    }
    

    运行结果

    keys=captchaId, value=d094d0ba1af
    keys=nounce, value=5479916053492602771
    keys=signature, value=be1776a32cea72e361e72d082252de93
    keys=timestamp, value=1553435624624
    keys=user, value=mingzhanghui
    keys=validate, value=17faa76f4a
    

      

  • 相关阅读:
    mysql实战45讲
    goland破解
    主从复制系列C
    主从复制系列B
    主从复制系列A
    sshd配置文件详解
    MySQL源码 数据结构array
    MySQL源码 information_schema新增表
    MySQL5.6 基于db的并行复制
    mysql 限制并发select patch
  • 原文地址:https://www.cnblogs.com/dfsxh/p/12874254.html
Copyright © 2011-2022 走看看