上Comparison operators圍棋編程語言規範部分使我相信只含可比字段的結構應該是可比的:Golang結構比較
結構值是可比較的,如果所有的領域都具有可比性。如果其相應的非空白字段相等,則兩個結構值相等。
因此,我希望,因爲所有的「學生」結構中的字段將下面的代碼編譯具有可比性:
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")
}
}
然而,fails to compile與消息:
無效操作:alice> = carol(操作符> =未在結構中定義)
我錯過了什麼?