Warum sind Kartenwerte nicht adressierbar?

Während ich mit Go-Code spielte, stellte ich fest, dass Kartenwerte nicht adressierbar sind. Beispielsweise

package main
import "fmt"

func main(){
    var mymap map[int]string = make(map[int]string)
    mymap[1] = "One"
    var myptr *string = &mymap[1]
    fmt.Println(*myptr)
}

Generiert Fehler

mapaddressable.go: 7: Adresse von mymap [1] kann nicht übernommen werden

Whereas, der Code,

package main
import "fmt"

func main(){
    var mymap map[int]string = make(map[int]string)
    mymap[1] = "One"
    mystring := mymap[1]
    var myptr *string = &mystring
    fmt.Println(*myptr)
}

funktioniert einwandfrei.

Warum ist das so? Warum haben sich die Go-Entwickler dafür entschieden, bestimmte Werte nicht adressierbar zu machen? Ist das ein Nachteil oder ein Merkmal der Sprache?

Bearbeite: Da ich aus einem C ++ - Hintergrund stamme, bin ich an dieses @ nicht gewöhnnot addressable Trend, der in Go weit verbreitet zu sein scheint. Der folgende Code funktioniert beispielsweise einwandfrei:

#include<iostream>
#include<map>
#include<string>
using namespace std;
int main(){
    map<int,string> mymap;
    mymap[1] = "one";
    string *myptr = &mymap[1];
    cout<<*myptr;
}

s wäre schön, wenn jemand darauf hinweisen könnte, warum das gleiche Adressierbarkeit kann in Go nicht erreicht werden (oder wurde absichtlich nicht erreicht).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage