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

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.

主站蜘蛛池模板: 互助| 新平| 九龙坡区| 揭西县| 莎车县| 贵港市| 育儿| 香河县| 宾阳县| 甘泉县| 康定县| 体育| 运城市| 黎平县| 上思县| 洛南县| 旌德县| 高淳县| 八宿县| 项城市| 通江县| 芦山县| 平泉县| 吕梁市| 吉隆县| 灌云县| 浏阳市| 讷河市| 阳泉市| 涿鹿县| 乌什县| 台江县| 乐业县| 广安市| 克山县| 五常市| 岱山县| 合山市| 顺平县| 五大连池市| 西充县|