=` 當他們的領域具有可比性時? " />
Go 結構體比較:意外錯誤
Go 程式語言規範規定,只有可比較字段的結構體應該具有可比較性。但是,以下程式碼無法編譯:
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") } }
錯誤訊息是:
無效操作:alice >= carol (operator >= not Defined on struct)
此錯誤與規範,因為如果它們的字段是,結構應該是可比較的。它們是無序的。比較的,但不是有序的:
相等運算符== 和!= 適用於可比較的操作數。 .
如果結構體的所有字段都可比較,則結構體值也可比較。 >
因此,您不能使用>= 來比較Student 結構體,即使它們的欄位是可比較的。
以上是當 Go 結構體的字段可比較時,為什麼我不能將它們與 `>=` 進行比較?的詳細內容。更多資訊請關注PHP中文網其他相關文章!