Junior — Middle
Може ли да се сравняват различни структури от данни?
sobes.tech AI
Отговор от AI
В Go можете да сравнявате структури от данни, ако всички техни полета са сравними. Например, структури, състоящи се от базови типове (int, string, bool и т.н.), могат да бъдат сравнявани директно с оператора ==.
Обаче, ако структурата съдържа полета, които не могат да бъдат сравнявани (например, slices, карти, функции), директното сравнение на структурата ще доведе до грешка при компилация.
Пример за сравнение на структури:
package main
import "fmt"
type Person struct {
Name string
Age int
}
func main() {
p1 := Person{Name: "Alice", Age: 30}
p2 := Person{Name: "Alice", Age: 30}
p3 := Person{Name: "Bob", Age: 25}
fmt.Println(p1 == p2) // true
fmt.Println(p1 == p3) // false
}
Ако структурата съдържа полета, които не могат да бъдат сравнявани, например slices, трябва да реализирате собствена функция за сравнение, която преминава през елементите и ги сравнява поотделно.