DeepEqual là một thư giãn đệ quy của toán tử Go's ==.
DeepEqual báo cáo xem x và y có phải là sâu bằng nhau hay không, được định nghĩa như sau. Hai giá trị cùng loại là bằng nhau nếu áp dụng một trong các trường hợp sau. Giá trị của các loại khác nhau không bao giờ bằng nhau sâu sắc.
Các giá trị mảng bằng nhau sâu khi các phần tử tương ứng của chúng bằng nhau sâu.
Các giá trị cấu trúc là bằng nhau sâu sắc nếu các trường tương ứng của chúng, cả xuất và không xuất, đều bằng nhau sâu sắc.
Giá trị Func bằng nhau sâu nếu cả hai đều không; nếu không thì chúng không bằng nhau sâu sắc.
Các giá trị giao diện là bằng nhau sâu sắc nếu chúng giữ các giá trị cụ thể sâu bằng nhau.
Các giá trị bản đồ hoàn toàn bằng nhau nếu chúng là cùng một đối tượng bản đồ hoặc nếu chúng có cùng độ dài và các khóa tương ứng của chúng (được khớp bằng cách sử dụng đẳng thức Go) với các giá trị bằng nhau sâu.
Các giá trị con trỏ hoàn toàn bằng nhau nếu chúng bằng nhau khi sử dụng toán tử Go's == hoặc nếu chúng trỏ đến các giá trị bằng nhau sâu.
Các giá trị lát cắt bằng nhau sâu sắc khi tất cả các giá trị sau là đúng: chúng đều là số không hoặc cả số không, chúng có cùng độ dài và chúng trỏ đến cùng một mục nhập ban đầu của cùng một mảng bên dưới (nghĩa là, & x [0 ] == & y [0]) hoặc các yếu tố tương ứng của chúng (tối đa) dài bằng nhau. Lưu ý rằng một lát trống không phải là con số không và một lát cắt không (ví dụ: [] byte {} và [] byte (nil)) không bằng nhau.
Các giá trị khác - số, số, chuỗi và kênh - hoàn toàn bằng nhau nếu chúng bằng nhau khi sử dụng toán tử Go's ==.
==
nhà điều hành được xác định tại Gò chỉ một số loại, vì vậy hơn nữa, câu hỏi này cũng là một trong những hợp pháp.