2013-06-05 16 views

Odpowiedz

16

Specyfikacja Go mówi:

nowa, pusta wartość map odbywa się za pomocą wbudowanego markę funkcję, która przyjmuje typ mapy oraz opcjonalny podpowiedź zdolności produkcyjnej jako argumenty

make(map[string]int) 
make(map[string]int, 100) 

Początkowa pojemność nie jest związana z rozmiarem: mapy rosną, aby pomieścić liczbę przechowywanych w nich elementów:

Nie, nie musisz robić żadnych llokalizacje do mapy po jej utworzeniu. Jest to obsługiwane wewnętrznie przez środowisko wykonawcze Go. Opcjonalna pojemność używana podczas tworzenia mapy jest jedynie wskazówką, a nie ograniczeniem.

+0

oh Stwierdziłem, że moja mapa nie jest jeszcze "wykonana", więc spowodowała błąd. nie ma problemu z kosmosem. ale jak wywołać make po utworzeniu struktury kontenera? Nie widzę konstruktora w idźu. – Nick

+3

Prawda, w Go nie ma konstruktorów. Zamiast konstruktorów można użyć funkcji fabrycznej o takiej samej nazwie jak typ, po prostu z 'Nowym' z góry. Na przykład. 'func NewStruct ([argumenty]) * Struct'. Jest to idiomatyczne. – ANisus

Powiązane problemy