網頁

2023/5/19

Golang Slice轉Map convert slice to map

Go語言的Slice轉為Map的方式如下。。


例如下面把字串slice轉為map,索引為key。

names := []string{"john", "mary", "tony"}
nameMap := make(map[int]string, len(names))
for i, name := range names {
    nameMap[i] = name
}
fmt.Println(nameMap) // map[0:john 1:mary 2:tony]

下面把struct Employee的slice轉為map,key為Employee.Id

main.go

package main

import "fmt"

type Employee struct {
    Id   int64
    Name string
    Age  int
}

func main() {
    emps := []Employee{
        {1, "john", 33},
        {2, "mary", 28},
        {3, "tony", 45},
    }

    empMap := make(map[int]Employee, len(emps))
    for _, emp := range emps {
        empMap[int(emp.Id)] = emp
    }

    fmt.Println(empMap) // map[1:{1 john 33} 2:{2 mary 28} 3:{3 tony 45}]
}


沒有留言:

張貼留言