The Go Ngôn ngữ lập trình phần Đặc điểm kỹ thuật trên Comparison operators dẫn tôi để tin rằng một struct chỉ chứa các lĩnh vực thể so sánh nên so sánh:Golang struct so
giá trị Struct có thể so sánh nếu tất cả các lĩnh vực của họ có thể so sánh. Hai giá trị cấu trúc bằng nhau nếu các trường không trống tương ứng của chúng bằng nhau.
Như vậy, tôi mong chờ đoạn mã sau để biên dịch vì tất cả các lĩnh vực trong "Sinh viên" struct có thể so sánh:
package main
type Student struct {
Name string // "String values are comparable and ordered, lexically byte-wise."
Score uint8 // "Integer values are comparable and ordered, in the usual way."
}
func main() {
alice := Student{"Alice", 98}
carol := Student{"Carol", 72}
if alice >= carol {
println("Alice >= Carol")
} else {
println("Alice < Carol")
}
}
Tuy nhiên, nó fails to compile với thông điệp:
hoạt động không hợp lệ: alice> = carol (toán tử> = không được xác định trên cấu trúc)
Tôi đang thiếu gì?