Go 如何处理范围的并发映射
我想为范围映射创建一个值,以便结果可以是偏移量、行先获取、行仅获取 但由于并发,我的代码可以变成偏移量,只能行,行先取 如何保持偏移量、行先取、行只取等顺序?或者可能会阻止并发 已经尝试使用WaitGroup,wg.Add wg.Done wg.Wait,但仍然无法工作Go 如何处理范围的并发映射,go,concurrency,Go,Concurrency,我想为范围映射创建一个值,以便结果可以是偏移量、行先获取、行仅获取 但由于并发,我的代码可以变成偏移量,只能行,行先取 如何保持偏移量、行先取、行只取等顺序?或者可能会阻止并发 已经尝试使用WaitGroup,wg.Add wg.Done wg.Wait,但仍然无法工作 mapPagination := map[string]interface{}{`OFFSET`: offset, `ROWS FETCH FIRST`: limit, `ROW ONLY:keyOnly`: ``} for
mapPagination := map[string]interface{}{`OFFSET`: offset, `ROWS FETCH FIRST`: limit, `ROW ONLY:keyOnly`: ``}
for kPagination, vPagination := range pagination {
if strings.Contains(kPagination, "keyOnly") {
kPagination = strings.Replace(kPagination, ":keyOnly", "", 1)
slicesPagination = append(slicesPagination, fmt.Sprintf("%s", kPagination))
} else {
slicesPagination = append(slicesPagination, fmt.Sprintf("%s $%s", kPagination, ParseString(index)))
values = append(values, vPagination)
}
index++
}
您没有并发问题。地图中键的顺序无法保证。如果需要有序对,请使用结构切片:
type pair struct {
Key string
Value string
}
mapPagination := []pair{{Key:`OFFSET`,Value:offset},
{Key:`ROWS FETCH FIRST`,Value: limit},
{Key:`ROW ONLY:keyOnly`}}