проверка равенства трех значений элегантно
, в то время как традиционный подход с if a == b == c приводит к ошибке синтаксиса, есть альтернативные методы, чтобы определить, являются ли три значения. Подход
остается простейшее решение:
, если a == b && a == c { fmt.println («Все 3 равны») }
if a == b && a == c {
fmt.Println("All 3 are equal")
}
Изучение творческих решений
Использование карты в качестве набора:
]
, если len (map [interface {}] int {a: 0, b: 0, c: 0}) == 1 {}] int {a: 0, b: 0, c: 0} == 1 fmt.println («Все 3 равны») }]
if len(map[interface{}]int{a: 0, b: 0, c: 0}) == 1 {
fmt.Println("All 3 are equal")
}
массивы сопоставимы, что позволяет нам сравнивать несколько элементов одновременно:
if [2] интерфейс {} {a, b} = [2] {} {b fmt.println («Все 3 равны»)]
if [2]interface{}{a, b} == [2]interface{}{b, c} {
fmt.Println("All 3 are equal")
}
мы можем индексировать карту с ключом, которая приводит к значению сравнения:
if map [}] bool {a: b = c} [b] {b] {b] {b] {b] fmt.println («Все 3 равны») }
if map[interface{}]bool{a: b == c}[b] {
fmt.Println("All 3 are equal")
}
также сопоставимы, поэтому мы можем создать анонимную структуру со значениями и сравнить их:
if struct } {b, c} { fmt.println («Все 3 равны») }]
if struct{ a, b interface{} }{a, b} == struct{ a, b interface{} }{b, c} {
fmt.Println("All 3 are equal")
}
, чтобы сравнить срезы, мы используем entereepequal () function:
if Refert.deepequal ([] interface {} {a, b}, [] interface. fmt.println («Все 3 равны») }]
if reflect.DeepEqual([]interface{}{a, b}, []interface{}{b, c}) {
fmt.Println("All 3 are equal")
}
] мы можем определить функцию Helper для обработки любого количества значений:
func alequals (v ... enterface {}) bool {& Если len (v)> 1 { A: = V [0] для _, s: = диапазон v { Если a! = s { вернуть ложь } } } вернуть правду }]
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3