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?
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:
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:
Tags und Links go conventions convention