Gibt es eine eingebaute Funktion min für eine Scheibe int-Argumente oder eine variable Anzahl von int-Argumente in golang?
Vorstufe: ich bin gerade erst anfangen, um meine Füße nass mit golang.
Kann dies beweisen, um einer eine dumme Frage sein, wie es ziemlich einfach, diese Berechnungen auszuführen, aber ich werde Sie trotzdem stellen, da ich nicht eine Antwort finden, wenn Sie Googeln.
Gibt es eine eingebaute Funktion, die zurückgibt, die mindestens eine Scheibe von int-Argumente:
func MinIntSlice(v []int) (m int) {
if len(v) > 0 {
m = v[0]
}
for i := 1; i < len(v); i++ {
if v[i] < m {
m = v[i]
}
}
return
}
ODER die mindestens eine variable Anzahl von int-Argumente:
func MinIntVarible(v1 int, vn ...int) (m int) {
m = v1
for i := 0; i < len(vn); i++ {
if vn[i] < m {
m = vn[i]
}
}
return
}
Wenn nicht, ist das beste "Konvention" einfach ein Paket erstellen, das enthält Helfern wie diese?
InformationsquelleAutor Jesse | 2015-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine built-in für diese.
Wenn Sie diese Funktionalität benötigen, die nur in einem Paket, Sie können schreiben, eine un-exportierte Funktion (z.B.
minIntSlice
).Wenn Sie diese Funktionalität benötigen, die in mehreren Paketen können Sie ein Paket erstellen und ähnlichen Funktionen gibt. Sollten Sie in Erwägung ziehen, dieses Paket innen (https://golang.org/s/go14internal).
Ein paar Vorschläge zur Verbesserung Ihrer code:
MinIntSlice
0 zurück, bei einem leeren Scheibe. Aber 0 ist eine gültige min-element als gut. Ich denke, fordern Panik auf eine leere Scheibe ist eine bessere option.Range-Schleife:
Danke für den Zeiger auf "internal" - Pakete. Ich habe dupliziert unexported Funktionen wie diese, und das innere sieht aus wie der Weg, um besser pflegen Sie diese.
InformationsquelleAutor kostya
Mit der Sortierung kann es kürzer sein:
Aber vergessen Sie nicht, ihn zu ändern, für die zero-length-Scheiben auf Ihren Geschmack.
InformationsquelleAutor Yury Alexandrov
Als @Kostja richtig gesagt, es ist keine built-in -, min-oder max-Funktion in Golang.
Allerdings würde ich vorschlagen, eine etwas andere Lösung:
Mit, dass das problem einer leeren Scheibe ist gelöst: ein runtime error angezeigt wird (
index out of range
)InformationsquelleAutor Michael Dorner