官术网_书友最值得收藏!

Converting an array into a map

This subsection will perform a practical operation, which is converting an array into a map without knowing the size of array in advance. The Go code of array2map.go can be divided into three main parts. The first part is the standard Go code that includes the required packages and the beginning of the main() function:

package main 
 
import ( 
   "fmt" 
   "strconv" 
) 
 
func main() { 

The second part, which implements the core functionality, is as follows:

anArray := [4]int{1, -2, 14, 0} 
aMap := make(map[string]int) 
 
length := len(anArray) 
for i := 0; i < length; i++ { 
   fmt.Printf("%s ", strconv.Itoa(i)) 
   aMap[strconv.Itoa(i)] = anArray[i] 
} 

You first define the array variable and the map variable you will use. The for loop is used for visiting all the array elements and adding them to map. The strconv.Itoa() function converts the index number of array into a string.

Bear in mind that if you know that all the keys of a map will be consecutive positive integer numbers, you might consider using an array or a slice instead of a map . In fact, even if the keys are not consecutive, arrays and slices are cheaper data structures than maps, so you might end up with a sparse matrix.

The last part, which is just for printing the contents of the generated map, uses the expected range form of the for loop:

for key, value := range aMap {
fmt.Printf("%s: %d\n", key, value) } }

As you can easily guess, developing the inverse operation is not always possible because map is a richer data structure than array. However, the price you pay for a more powerful data structure is time because array operations are usually faster.

主站蜘蛛池模板: 永顺县| 汤原县| 阿拉善盟| 文山县| 桓台县| 云林县| 贵定县| 华蓥市| 宿州市| 长海县| 芷江| 新宁县| 固原市| 诸暨市| 西吉县| 西丰县| 黄浦区| 当涂县| 乐陵市| 增城市| 积石山| 津南区| 宝鸡市| 康马县| 隆尧县| 黄大仙区| 耿马| 红桥区| 唐山市| 靖远县| 顺义区| 米林县| 汶川县| 新丰县| 南平市| 桂平市| 平原县| 泰来县| 汽车| 武胜县| 梅河口市|