Rumah > pembangunan bahagian belakang > Golang > Mengapa Go Generics Tidak Boleh Gunakan `setanding` dengan Operator Pesanan (``, dsb.)?

Mengapa Go Generics Tidak Boleh Gunakan `setanding` dengan Operator Pesanan (``, dsb.)?

DDD
Lepaskan: 2024-12-10 10:44:15
asal
294 orang telah melayarinya

Why Can't Go Generics Use `comparable` with Order Operators (``, etc.)?

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan