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

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.

主站蜘蛛池模板: 玛曲县| 阜阳市| 攀枝花市| 全南县| 延津县| 南乐县| 株洲市| 牟定县| 镇康县| 察隅县| 南昌县| 亳州市| 界首市| 吕梁市| 莆田市| 乐东| 江津市| 渝中区| 茂名市| 牟定县| 柘城县| 任丘市| 金堂县| 昌图县| 文山县| 绥江县| 云和县| 镇康县| 遵化市| 昌邑市| 彩票| 四会市| 陇南市| 兴城市| 淮阳县| 泸定县| 方山县| 昌图县| 浦东新区| 汶上县| 合作市|