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
    

      

  • 相关阅读:
    详解Oracle安装与配置.
    如何做大规模软件的配置管理
    关于软件权限设置的一点心得体会
    使用RDLC报表(一)
    详细解析Linux scp命令的应用
    spring propertyplaceholderconfigurer
    hibernate ehcache
    由Eclipse内存不足谈谈JVM内存
    事务策略: API 层策略
    什么叫控制反转(IoC )
  • 原文地址:https://www.cnblogs.com/dfsxh/p/12874254.html
Copyright © 2011-2022 走看看