Mam struct i chciałbym, aby został zainicjowany z niektórych rozsądnych wartości domyślnych.Konstruktorzy w Go
Zazwyczaj rzeczą do zrobienia jest użycie konstruktora, ale ponieważ go nie jest tak naprawdę OOP w tradycyjnym znaczeniu, nie są to obiekty prawdziwe i nie ma konstruktorów.
Zauważyłem metodę init, ale to jest na poziomie pakietu. Czy jest coś podobnego, co można zastosować na poziomie struktury?
Jeśli nie, to jaka jest najlepsza praktyka dla tego typu rzeczy w Go?
jak by to działało dla właściwości takich jak mapy. Domyślną wartością jest zero, prawda? Czy zatem należy je zawsze inicjować za pomocą nowej funkcji? –
Tak i nie, to zależy. Najprawdopodobniej tak, podaj 'func New() T'. Ale w zależności od przypadku można sprawdzić tę zerową mapę i "zrobić" tylko raz, gdy jest to potrzebne. W takim przypadku: Dokumentuj, czy tworzenie mapy jest bezpieczne dla równoczesnego użycia (czyli Twój kod, który sprawia, że mapa jest chroniona np. Przez muteks). Zależy trochę od tego, czy mapa jest eksportowana czy nie ... Trudno powiedzieć, nie widząc kodu. – Volker