Vérification de l'égalité de trois valeurs élégamment
Bien que l'approche traditionnelle avec si a == b == c entraîne une erreur de syntaxe, il existe des méthodes alternatives pour déterminer si trois valeurs sont égales. Approche
La solution la plus simple reste:
si a == b && a == c { fmt.println ("tous les 3 sont égaux") }
if a == b && a == c {
fmt.Println("All 3 are equal")
}
if Len (map [interface {}] int {a: 0, b: 0, c: 0}) == 1 { fmt.println ("tous les 3 sont égaux") }
avec les tableaux:
Les tableaux sont comparables, ce qui nous permet de comparer plusieurs éléments à la fois:
If [2] interface {} {a, b} == [2] interface {} {b, c} {b} == [2] interface {} {b, c}} {b} == [2] Interface {} {b, c}} {b} == [2] Interface {} {b, c}} {b} == [2] Interface {} {b, c}} {b} == [2] Interface {} {b, c}} {B { fmt.println ("tous les 3 sont égaux") }if len(map[interface{}]int{a: 0, b: 0, c: 0}) == 1 {
fmt.Println("All 3 are equal")
}
We can index a map with a key that results in the comparison value:
if map[interface{}]bool{a: b == c}[b] { fmt.println ("tous les 3 sont égaux") }
if [2]interface{}{a, b} == [2]interface{}{b, c} {
fmt.Println("All 3 are equal")
}
Les structures sont également comparables, afin que nous puissions créer une structure anonyme avec les valeurs et les comparer:
Si structure {a, b interface {}} {a, b} == Structure {a,} interface}}} {a, b} == } {b, c} { fmt.println ("tous les 3 sont égaux") }
if map[interface{}]bool{a: b == c}[b] {
fmt.Println("All 3 are equal")
}
Pour comparer les tranches, nous utilisons la fonction de réflect.deequal ():
if reflef.deesequal ([] interface {}} {a, b}, [] interface {} {b, c}) fmt.println ("tous les 3 sont égaux") }
if struct{ a, b interface{} }{a, b} == struct{ a, b interface{} }{b, c} {
fmt.Println("All 3 are equal")
}
Nous pouvons définir une fonction d'assistance pour gérer n'importe quel nombre de valeurs:
func allequals (v ... interface {}) Bool { Si Len (v)> 1 { A: = V [0] pour _, s: = range v { Si a! = S { retourner faux } } } Retour vrai }Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3