Rumah >pembangunan bahagian belakang >Golang >Mengapa Go Generics Tidak Boleh Gunakan `setanding` dengan Operator Pesanan (``, dsb.)?
Mengapa anda tidak boleh menggunakan kekangan yang setanding dengan pengendali pesanan dalam generik Go?
Semasa meneroka generik Go, anda mungkin menghadapi ralat apabila menggunakan > operator pada jenis setanding terbina dalam. Ini kerana kekangan setanding hanya menyokong pengendali kesaksamaan (== dan !=), manakala pengendali pesanan (<, >, <=, dan >=) memerlukan kekangan Tertib.
Apakah perbezaan antara jenis setanding dan tersusun?
Kekangan setanding adalah untuk jenis yang menyokong kesaksamaan operator, termasuk tatasusunan dan struct dengan medan setanding. Walau bagaimanapun, pengendali pesanan boleh digunakan untuk jenis yang dipesan, seperti jenis angka dan rentetan.
Penyelesaian untuk Go 1.18 hingga 1.20
In Go versi 1.18 hingga 1.20 , anda boleh menggunakan kekangan. Kekangan tersusun untuk menyokong pengendali pesanan. Kekangan ini termasuk jenis seperti Integer, Float dan ~string.
Solution for Go 1.21 dan ke atas
Dalam Go 1.21, perpustakaan standard memperkenalkan pakej cmp dengan Kekangan tersusun dan dua fungsi generik, Kurang dan Bandingkan, yang memudahkan kerja dengan jenis tersusun.
Atas ialah kandungan terperinci Mengapa Go Generics Tidak Boleh Gunakan `setanding` dengan Operator Pesanan (``, dsb.)?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!