Bagaimana untuk mengisih tatasusunan rentetan mengikut panjang menggunakan fungsi isihan dalam bahasa Go?

PHPz
Lepaskan: 2023-07-31 15:01:58
asal
1720 orang telah melayarinya

Bagaimana untuk mengisih tatasusunan rentetan mengikut panjang menggunakan fungsi isih dalam bahasa Go?

Isih ialah salah satu operasi biasa dalam atur cara Tatasusunan rentetan boleh diisih mengikut abjad atau mengikut panjang rentetan. Artikel ini akan memperkenalkan cara menggunakan fungsi isih dalam bahasa Go untuk mengisih tatasusunan rentetan mengikut panjang dan menyediakan contoh kod untuk demonstrasi.

Dalam bahasa Go, anda boleh menggunakan fungsi Isih dalam pakej isih untuk mengisih kepingan. Fungsi Isih memerlukan kepingan dan fungsi isihan sebagai parameter. Pertama, kita perlu menentukan fungsi pengisihan tersuai, yang akan digunakan untuk menentukan hubungan saiz antara dua rentetan.

Contoh kod adalah seperti berikut:

package main

import (
    "fmt"
    "sort"
)

type ByLength []string

func (s ByLength) Len() int {
    return len(s)
}

func (s ByLength) Swap(i, j int) {
    s[i], s[j] = s[j], s[i]
}

func (s ByLength) Less(i, j int) bool {
    return len(s[i]) < len(s[j])
}

func main() {
    strings := []string{"apple", "banana", "cherry", "date"}
    fmt.Println("Before sorting:", strings)

    sort.Sort(ByLength(strings))
    fmt.Println("After sorting by length:", strings)
}
Salin selepas log masuk

Dalam contoh ini, kami mencipta ByLength jenis tersuai, iaitu kepingan rentetan. Kami telah melaksanakan tiga kaedah dalam jenis. Antara muka antara muka untuk jenis ByLength: Len(), Swap() dan Less(). Kaedah Len() mengembalikan panjang kepingan, kaedah Swap() digunakan untuk menukar kedudukan dua elemen, dan kaedah Less() digunakan untuk menentukan saiz dua elemen.

Dalam fungsi utama, kami mencipta rentetan hirisan rentetan dan memanggil fungsi Isih untuk mengisihnya. Memandangkan kami telah melaksanakan kaedah pengisihan jenis ByLength, kami boleh terus menukar rentetan kepada jenis ByLength untuk mengisih. Akhirnya, kami mencetak keputusan sebelum dan selepas menyusun.

Laksanakan kod di atas dan hasil output adalah seperti berikut:

Before sorting: [apple banana cherry date]
After sorting by length: [date apple banana cherry]
Salin selepas log masuk

Anda boleh melihat tatasusunan rentetan disusun dari pendek ke panjang mengikut panjang.

Dengan contoh kod di atas, kita boleh melihat cara mengisih tatasusunan rentetan mengikut panjang menggunakan fungsi isih dalam bahasa Go. Menggunakan fungsi isihan.Isih dan kaedah isihan tersuai, pelbagai keperluan isihan boleh dikendalikan secara fleksibel. Saya harap artikel ini akan membantu anda memahami dan menggunakan fungsi pengisihan dalam bahasa Go.

Atas ialah kandungan terperinci Bagaimana untuk mengisih tatasusunan rentetan mengikut panjang menggunakan fungsi isihan dalam bahasa Go?. 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