From ca18a14d43c147257e66c701b535bf914928696f Mon Sep 17 00:00:00 2001 From: Tim Scheuermann Date: Fri, 11 Oct 2019 23:13:18 +0200 Subject: [PATCH] Preallocate slices and remove double type assertion --- utils/conversions.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/utils/conversions.go b/utils/conversions.go index f8b1542b..133ddb5d 100644 --- a/utils/conversions.go +++ b/utils/conversions.go @@ -8,7 +8,7 @@ import ( // MapToStrs takes a map of interfaces and returns a map of strings func MapToStrs(aMap map[string]interface{}) map[string]string { - results := make(map[string]string) + results := make(map[string]string, len(aMap)) for key, val := range aMap { results[key] = val.(string) @@ -21,10 +21,10 @@ func MapToStrs(aMap map[string]interface{}) map[string]string { // ToInts takes a slice of interfaces and returns a slice of ints func ToInts(slice []interface{}) []int { - results := []int{} + results := make([]int, len(slice)) - for _, val := range slice { - results = append(results, val.(int)) + for i, val := range slice { + results[i] = val.(int) } return results @@ -32,14 +32,14 @@ func ToInts(slice []interface{}) []int { // ToStrs takes a slice of interfaces and returns a slice of strings func ToStrs(slice []interface{}) []string { - results := []string{} + results := make([]string, len(slice)) - for _, val := range slice { - switch val.(type) { + for i, val := range slice { + switch t := val.(type) { case int: - results = append(results, strconv.Itoa(val.(int))) + results[i] = strconv.Itoa(t) case string: - results = append(results, val.(string)) + results[i] = t } }