Pointers 如何更改/访问地图实例';s值通过Go中的映射指针?

Pointers 如何更改/访问地图实例';s值通过Go中的映射指针?,pointers,map,go,Pointers,Map,Go,假设我们有代码: var Cache_map *map[string]int Cache_map = new(map[string]int) 然后我们想添加键:type&value1到Cache\u map中,我们该怎么做?在这种情况下,不需要new、make或指向map的指针。骨架/示例: package main import "fmt" var CacheMap = map[string]int{} func main() { CacheMap["type"] =

假设我们有代码:

var Cache_map *map[string]int

Cache_map = new(map[string]int)

然后我们想添加键:
type
&value
1
Cache\u map
中,我们该怎么做?

在这种情况下,不需要
new
make
或指向map的指针。骨架/示例:

package main

import "fmt"

var CacheMap = map[string]int{}

func main() {
        CacheMap["type"] = 1
        fmt.Printf("%#v\n", CacheMap)
}


输出:

map[string]int{"type":1}
map[type:1]

比如说,如果你真的,真的需要这么做

package main

import "fmt"

func main() {
    var Cache_map *map[string]int
    Cache_map = new(map[string]int)
    *Cache_map = make(map[string]int)
    (*Cache_map)["type"] = 1
    fmt.Println(*Cache_map)
}
输出:

map[string]int{"type":1}
map[type:1]

我只是想知道如何实现这一点?当然,我已经给出了一个非常简单的例子,但在更复杂的情况下可能需要映射指针。@ReckHou:map是一种引用类型。实际上,它已经实现为指向某个运行时数据结构的指针。传递引用(RT数据指针)就足以在程序中的多个位置共享地图。好的,我知道它现在没用了。我不知道为什么人们认为这个问题没用,它在某些情况下可能有用。只是对戈兰的不同看法。