Rumah >pembangunan bahagian belakang >Golang >Mengapa Saya Tidak Boleh Gunakan `>` dan `

Mengapa Saya Tidak Boleh Gunakan `>` dan `

Barbara Streisand
Barbara Streisandasal
2024-12-08 03:17:15313semak imbas

Why Can't I Use `>` dan `` dan `" />

Kekangan Perbandingan dalam Go Generik: Memahami Had Operator Pesanan

Dalam Go generik, membandingkan nilai berangka boleh dicapai menggunakan sama ada kekangan jenis tersuai atau kekangan sebanding terbina dalam. Walau bagaimanapun, menggunakan kekangan setanding dengan pengendali pesanan seperti > boleh menimbulkan ralat.

Kekangan setanding

Kekangan setanding digunakan untuk jenis yang menyokong pengendali kesaksamaan == dan !=. Ia juga boleh digunakan untuk jenis yang digunakan sebagai kunci peta, termasuk tatasusunan dan struct dengan medan yang setanding. Walau bagaimanapun, ambil perhatian bahawa ia tidak menyokong pengendali pesanan (<, <=, >, >=).

Operator Pesanan dan kekangan.Dipesan

Pengendali pesanan hanya terpakai kepada jenis yang melaksanakan kekangan. Antara muka tertib. Antara muka ini mentakrifkan susunan separa untuk jenis yang diwakilinya. Walau bagaimanapun, dalam Go versi 1.18 hingga 1.20, kekangan. Antara muka tertib hanya tersedia dalam pakej percubaan golang.org/x/exp.

Go 1.21 Solution

Dalam Go 1.21, pakej cmp memperkenalkan kekangan Tertib dan dua fungsi generik, Kurang dan Bandingkan, yang memudahkan perbandingan untuk jenis yang dipesan.

Penyelesaian untuk Go 1.18 hingga 1.20

Dalam Go versi 1.18 hingga 1.20, anda boleh menggunakan golang.org/x/ pakej exp untuk mengakses kekangan. Antara muka tersusun. Sebagai alternatif, anda boleh melaksanakan jenis tersuai anda sendiri yang memenuhi kekangan. Antara muka tersusun dan menggunakannya dalam fungsi generik anda.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Gunakan `>` dan `. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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