, =) dengan Go Generics? " />
Dalam Go 1.18, generik membenarkan kekangan yang disesuaikan untuk menguatkuasakan keserasian jenis. Walau bagaimanapun, apabila cuba menggunakan '>' pengendali dengan kekangan 'sebanding', ralat mungkin timbul.
Kekangan 'sebanding' mengesahkan bahawa sesuatu jenis menyokong pengendali kesaksamaan ('==' dan '!= '). Ia merangkumi jenis yang layak sebagai kunci peta, termasuk tatasusunan dan struct dengan medan yang setanding dikecualikan kerana ia boleh menyebabkan panik masa jalan semasa perbandingan.
Walaupun spesifikasi Go menyebut pengendali pesanan di bawah istilah "pengendali perbandingan", mereka membezakan antara kesetaraan ('==' dan '!=') dan operator pesanan ('<', '>', '<=', '>='). Pesanan terhad kepada jenis yang 'dipesan.'
Go 1.21
Pergi 1.18 hingga 1.20
Contoh:
import "golang.org/x/exp/constraints" func getBiggerNumber[T constraints.Ordered](t1, t2 T) T { if t1 > t2 { return t1 } return t2 }
Dengan memilih kekangan yang sesuai, anda memastikan keserasian jenis dan tingkah laku perbandingan yang betul dalam fungsi generik anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Operator Pesanan dengan Selamat (<, >, <=, >=) dengan Go Generics?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!