php-Editor Zimo führt Sie in eine sehr praktische Go-Sprachtechnik ein: Überprüfen Sie, ob jedes Element im Slice die Bedingungen erfüllt. Der Slice der Go-Sprache ist eine flexible und leistungsstarke Datenstruktur. In praktischen Anwendungen müssen wir jedoch häufig bedingte Beurteilungen der Elemente im Slice durchführen. In diesem Artikel wird detailliert beschrieben, wie Sie mithilfe der Range- und If-Anweisungen der Go-Sprache überprüfen, ob jedes Element im Slice die von uns festgelegten Bedingungen erfüllt. Wenn Sie diese Technik beherrschen, können Sie segmentierte Daten effizienter verarbeiten und die Lesbarkeit und Wartbarkeit Ihres Codes verbessern.
Was ist der eleganteste Weg, um zu überprüfen, ob jedes Element in einem Slice bestimmte Bedingungen erfüllt? In meinem speziellen Szenario habe ich ein Byte-Slice: [16]Byte. Ich muss überprüfen, ob alle Bytes 0 sind.
Zum Beispiel würde ich in js so etwas tun wie:
const uint8Array = new Uint8Array([0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0])//Can be thought of as an array of "bytes" const isEmpty = uint8Array.every(byte=>byte === 0)//Check that every "byte" is zero console.log(isEmpty)//false
Was ist der sauberste und einfachste Weg, dies in Go zu tun?
Für Lesbarkeit und Flexibilität (z. B. wenn Sie byte
以外的类型进行操作),您可能会受益于编写一个小的 all
generische Funktionen
true
genau dann zurück, wenn alle Elemente des Slice das Prädikat erfüllen. Sie können die generische Funktion dann frei mit verschiedenen Slices und Prädikaten verwenden.
package main import "fmt" func main() { bs := []byte{15: 1} // slice of 16 bytes, all but the last one of which are zero isZero := func(b byte) bool { return b == 0 } fmt.Println(All(bs, isZero)) // false } func All[T any](ts []T, pred func(T) bool) bool { for _, t := range ts { if !pred(t) { return false } } return true }
Keine Notwendigkeit, eine Bibliothek für all
Funktionen zu erstellen; Ein bisschen Kopieren ist ein bisschen Abhängigkeit wert.
Das obige ist der detaillierte Inhalt vonGo: Überprüfen Sie, ob jedes Element in einem Slice eine Bedingung erfüllt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!