go算法入门(动态创建一个二维hash)

题目:

实现这样的方法: 可以动态创建一个二维Hash, 内容如下:

 generate_hash(3)
  获得:
  {
    "parent1": {
        "child1": "value1"
    },
    "parent2": {
        "child2": "value2"
    },
    "parent3": {
        "child3": "value3"
    }
  }

代码如下:

package main
import (
  "fmt"
  "strconv"
)
// 生成二维hash
func generate_hash(number int) map[string]map[string]string{
  // 声明一个hash
  hash := make(map[string]string)
  // 声明二维hash
  result := make(map[string]map[string]string)
  // i遍历number
  for i := 1; i <= number; i++{
  	// 声明变量key和value, strconv.Itoa函数(将int转换为string)
    key :=  "child" + strconv.Itoa(i)
    value := "string" + strconv.Itoa(i)
    // 写入
    hash[key] = value
    // 声明变量key1, strconv.Itoa函数(将int转换为string)
    key1 := "parent" + strconv.Itoa(i)
    // 写入
    result[key1] =  make(map[string]string)
    result[key1][key] = value
  }
  return result
}
func main() {
  // 调用函数
  fmt.Println(generate_hash(3))
}

结果:

map[parent1:map[child1:value1] parent2:map[child2:value2] parent3:map[child3:value3]]

你可能感兴趣的:(go,hash算法,go,算法,hash,哈希算法)