Gibt es eine eingebaute min-Funktion für eine Scheibe von int-Argumenten oder eine variable Anzahl von int-Argumenten in golang?

8

Precursor: Ich fange gerade an, meine Füße mit Golang nass zu machen.

Dies könnte sich als eine dumme Frage erweisen, da es recht einfach ist, diese Berechnungen durchzuführen, aber ich werde es trotzdem fragen, da ich beim Googlen keine Antwort gefunden habe.

Gibt es eine eingebaute Funktion, die das Minimum einer Scheibe von int-Argumenten zurückgibt:

%Vor%

ODER das Minimum einer variablen Anzahl von int Argumenten:

%Vor%

Wenn nicht, ist die beste "Konvention", einfach ein Paket zu erstellen, das solche Helfer enthält?

    
Jesse 14.12.2015, 04:30
quelle

2 Antworten

15

Dafür gibt es keine eingebauten.

Wenn Sie diese Funktionalität nur in einem Paket benötigen, können Sie eine nicht exportierte Funktion schreiben (z. B. minIntSlice ).

Wenn Sie diese Funktionalität in mehreren Paketen benötigen, können Sie ein Paket erstellen und ähnliche Funktionen dort platzieren. Sie sollten in Betracht ziehen, dieses Paket intern zu machen ( Ссылка ).

Einige Vorschläge, wie Sie Ihren Code verbessern können:

  1. MinIntSlice gibt 0 für ein leeres Segment zurück. Allerdings ist 0 auch ein gültiges min-Element. Ich denke, Panik auf einer leeren Scheibe anzurufen ist eine bessere Option.

  2. Verwenden Sie die Bereichsschleife:

    %Vor%
kostya 14.12.2015, 04:47
quelle
0

Wie @kostya richtig sagte, gibt es in Golang keine eingebaute Min- oder Max-Funktion.

Ich würde jedoch eine etwas andere Lösung vorschlagen:

%Vor%

Damit ist das Problem eines leeren Slice gelöst: Es erscheint ein Laufzeitfehler ( index out of range )

    
Michael Dorner 31.08.2017 08:27
quelle

Tags und Links