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}]
}
沒有留言:
張貼留言