İşte bazı parçaları bir harita, bir referans değişken değilse, nedir? Dave Cheney tarafından:
Bir harita değeri, bir runtime.hmapyapıya bir göstericidir .
ve sonuç:
Sonuç
Haritalar, kanallar gibi, ancak dilimlerin aksine, yalnızca çalışma zamanı türlerine işaret eder. Yukarıda gördüğünüz gibi, harita sadece bir runtime.hmap
yapının göstergesidir .
Haritalar, bir Go programındaki diğer işaretçi değerleriyle aynı işaretçi semantiğine sahiptir. Derleyici tarafından harita sözdiziminin içindeki işlev çağrılarına yeniden yazılmasının hiçbir sihri yoktur runtime/hmap.go.
Ve mapsözdiziminin tarihi / açıklaması hakkında ilginç bir parça :
Haritalar işaretçi ise, olması gerekmiyor *map[key]valuemu?
Haritaların işaretçi değerleri olması durumunda ifadenin neden türle birlikte make(map[int]int)bir değer döndürdüğü
iyi bir sorudur map[int]int. Bir döndürmesi gerekmez *map[int]intmi? Ian Taylor
bir golang-fındık son zamanlarda bu cevap iplik 1 .
İlk günlerde harita dediğimiz şey şimdi işaretçi olarak yazılıyordu, yani siz yazdınız *map[int]int. Hiç mapkimsenin yazmadan yazmadığını fark ettiğimizde bundan uzaklaştık *map.
Türü bir işaretçi gibi görünmediği *map[int]intiçin map[int]intkafa karıştırıcı olsa da, tartışmalı bir şekilde türünün olarak yeniden adlandırılması, referans alınamayan işaretçi şekilli bir değerden daha az kafa karıştırıcıydı.