GoLang-Konventionen - Erstellen Sie einen benutzerdefinierten Typ aus dem Slice

9

Ist es eine gute Idee, einen eigenen Typ aus einem Slice in Golang zu erstellen?

Beispiel:

%Vor%

Ist es irgendwie eine Konvention in Golang, in meinem Beispiel Typen wie Trips zu erstellen? Oder ist es besser, []Trip im gesamten Projekt zu verwenden? Irgendwelche Vor- und Nachteile?

    
DHlavaty 17.07.2015, 10:11
quelle

2 Antworten

7

Soweit ich weiß, gibt es keine Konvention. Es ist in Ordnung, einen Slice-Typ zu erstellen, wenn Sie ihn wirklich brauchen. In der Tat, wenn Sie jemals Ihre Daten sortieren möchten, ist dies fast die einzige Möglichkeit: Erstellen Sie einen Typ und definieren Sie die sort.Interface Methoden darauf.

Auch in Ihrem Beispiel ist es nicht notwendig, die Adresse von Trips zu nehmen, da slice bereits ein "dicker Zeiger" einer Art ist. So können Sie Ihre Methode vereinfachen:

%Vor%     
Ainar-G 17.07.2015 10:45
quelle
5

Wenn das Ihr Typ ist (ein Stück), ist es in Ordnung. Es bietet Ihnen einen einfachen Zugriff auf zugrunde liegende Elemente (und ermöglicht range Iteration) und bietet zusätzliche Methoden.

Natürlich sollten Sie nur essentielle Methoden auf diesen Typ anwenden und nicht mit allem aufblähen, was []Trip als Argument benötigt. (Zum Beispiel würde ich empfehlen, DrawTripsOnTheGlobe(t Trips) zu haben, anstatt es als eine Methode von Trips zu haben.)

Um Ihren Verstand zu beruhigen, gibt es viele solcher Slice-Typen in Standard-Paketen:

Ссылка

Ссылка

Ссылка

Ссылка

    
tomasz 17.07.2015 10:48
quelle

Tags und Links