Isih Tidak Peka Huruf menggunakan isihan.Strings() dalam Go
Untuk pengisihan senarai rentetan yang tidak sensitif huruf dalam Go, pertimbangkan untuk menggunakan isihan. Slice(), yang memberikan fleksibiliti yang lebih besar daripada sort.Strings().
Fungsi Tersuai untuk Perbandingan Tidak Peka Huruf
Anda boleh menghantar fungsi tersuai untuk mengisih.Slice () untuk melakukan perbandingan tidak peka huruf besar-besaran. Fungsi berikut menukar rentetan kepada huruf kecil sebelum membandingkannya:
<code class="go">func lowercaseCompare(s1, s2 string) bool { return strings.ToLower(s1) < strings.ToLower(s2) }</code>
Menggunakan Fungsi Tersuai
Untuk mengisih senarai data tanpa sensitif huruf menggunakan fungsi tersuai:
<code class="go">sort.Slice(data, lowercaseCompare)</code>
Contoh
Pertimbangkan data senarai rentetan := []rentetan{"A", "b", "D", "c"}. Mengisihnya secara tidak sensitif huruf besar dan kecil menggunakan fungsi tersuai menghasilkan hasil ["A", "b", "c", "D"].
Isih Tidak sensitif huruf besar yang Cekap
Pendekatan di atas memperuntukkan dua rentetan baharu untuk setiap perbandingan. Untuk senarai rentetan yang besar, ini boleh menjadi tidak cekap. Untuk meningkatkan prestasi, pertimbangkan perbandingan rune-by-rune:
<code class="go">func runeCompare(a, b string) bool { for { r1, s1 := utf8.DecodeRuneInString(a) r2, s2 := utf8.DecodeRuneInString(b) if r1 == utf8.RuneError || r1 == r2 { return s1 < s2 } a = a[s1:] b = b[s2:] } }</code>
Isih Cekap dengan runeCompare()
Untuk mengisih data dengan cekap:
<code class="go">sort.Slice(data, runeCompare)</code>
Penyelesaian Alternatif: kumpulkan Pakej
Untuk pengisihan khusus bahasa atau budaya, pertimbangkan untuk menggunakan pakej susun. Ia menyediakan keupayaan pengisihan yang sedar setempat.
Atas ialah kandungan terperinci Bagaimana untuk Mencapai Pengisihan Senarai Rentetan yang Tidak Peka Huruf dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!