byte===0)/">
l'éditeur php Zimo vous présente une technique du langage Go très pratique : vérifier si chaque élément de la tranche remplit les conditions. La tranche du langage Go est une structure de données flexible et puissante, mais dans les applications pratiques, nous devons souvent effectuer des jugements conditionnels sur les éléments de la tranche. Cet article présentera en détail comment utiliser les instructions range et if du langage Go pour vérifier si chaque élément de la tranche répond aux conditions que nous avons définies. En maîtrisant cette technique, vous pourrez traiter plus efficacement les données découpées et améliorer la lisibilité et la maintenabilité de votre code.
Quelle est la manière la plus élégante de vérifier si chaque élément d'une tranche répond à certaines conditions ? Dans mon scénario particulier, j'ai une tranche d'octets : [16]byte. Je dois vérifier si tous les octets sont à 0.
Par exemple, en js, je ferais quelque chose comme :
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
Quelle est la manière la plus propre et la plus simple de procéder ?
Pour plus de lisibilité et de flexibilité (par exemple si vous devez utiliser desbyte
以外的类型进行操作),您可能会受益于编写一个小的all
fonctions génériques
true
si et seulement si tous les éléments de la tranche satisfont au prédicat.Vous êtes alors libre d'utiliser la fonction générique avec différentes tranches et prédicats.
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 }
Pas besoin de créer une bibliothèque pour lesall
fonctions, cependant ;Un peu de copie vaut un peu de dépendance.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!