假设我有一个切片,如:
stu = [{"id":"001","name":"A"} {"id":"002", "name":"B"}]也许还有更多这样的元素。切片内部是一个长字符串,我想使用json.unmarshal来解析它。
type Student struct {
Id string `json:"id"`
Name string `json:"name"`
}
studentList := make([]Student,len(stu))
for i, st := range stu {
go func(st string){
studentList[i], err = getList(st)
if err != nil {
return ... //just example
}
}(st)
}
//and a function like this
func getList(stu string)(res Student, error){
var student Student
err := json.Unmarshal(([]byte)(stu), &student)
if err != nil {
return
}
return &student,nil
}
我得到了nil结果,所以我会说goroutine执行的顺序是无序的,所以我不知道它是否可以使用studentList[i]来获得价值。
人到中年有点甜
蝴蝶刀刀
相关分类