1// +build go1.9 2 3package csvutil 4 5import ( 6 "sync" 7) 8 9var fieldCache sync.Map // map[typeKey][]field 10 11func cachedFields(k typeKey) fields { 12 if v, ok := fieldCache.Load(k); ok { 13 return v.(fields) 14 } 15 16 v, _ := fieldCache.LoadOrStore(k, buildFields(k)) 17 return v.(fields) 18} 19