Como classificar uma fatia em Golang?
Na linguagem Go, o slice é mais poderoso, flexível, conveniente do que um array e é uma estrutura de dados leve. A fatia é uma sequência de comprimento variável que armazena elementos de um tipo semelhante; você não tem permissão para armazenar tipos diferentes de elementos na mesma fatia.
Na linguagem Go, você pode classificar uma fatia com a ajuda da função Slice() . Esta função classifica a fatia especificada de acordo com a função less fornecida. O resultado desta função não é estável. Portanto, para classificação estável, você pode usar SliceStable. E essa função entra em pânico se a interface especificada não for do tipo fatia. Ele é definido no pacote de classificação, portanto, você deve importar o pacote de classificação em seu programa para acessar a função Slice.
Sintaxe:
func Slice(a_slice interface{}, less func(p, q int) bool)
Exemplo:
// Go program to illustrate
// how to sort a slice
package main
import (
"fmt"
"sort"
)
// Main function
func main() {
// Creating and initializing
// a structure
Author := []struct {
a_name string
a_article int
a_id int
}{
{"Mina", 304, 1098},
{"Cina", 634, 102},
{"Tina", 104, 105},
{"Rina", 10, 108},
{"Sina", 234, 103},
{"Vina", 237, 106},
{"Rohit", 56, 107},
{"Mohit", 300, 104},
{"Riya", 4, 101},
{"Sohit", 20, 110},
}
// Sorting Author by their name
// Using Slice() function
sort.Slice(Author, func(p, q int) bool {
return Author[p].a_name < Author[q].a_name })
fmt.Println("Sort Author according to their names:")
fmt.Println(Author)
// Sorting Author by their
// total number of articles
// Using Slice() function
sort.Slice(Author, func(p, q int) bool {
return Author[p].a_article < Author[q].a_article })
fmt.Println()
fmt.Println("Sort Author according to their"+
" total number of articles:")
fmt.Println(Author)
// Sorting Author by their ids
// Using Slice() function
sort.Slice(Author, func(p, q int) bool {
return Author[p].a_id < Author[q].a_id })
fmt.Println()
fmt.Println("Sort Author according to the their Ids:")
fmt.Println(Author)
}
Saída:
Classifique o autor de acordo com seus nomes:
[{Cina 634 102} {Mina 304 1098} {Mohit 300 104} {Rina 10 108} {Riya 4 101} {Rohit 56 107} {Sina 234 103} {Sohit 20 110} {Tina 104 105} {Vina 237 106}]Classifique o autor de acordo com o número total de artigos:
[{Riya 4 101} {Rina 10 108} {Sohit 20 110} {Rohit 56 107} {Tina 104 105} {Sina 234 103} {Vina 237 106} {Mohit 300 104 } {Mina 304 1098} {Cina 634 102}]Classifique o autor de acordo com seus IDs:
[{Riya 4 101} {Cina 634 102} {Sina 234 103} {Mohit 300 104} {Tina 104 105} {Vina 237 106} {Rohit 56 107} {Rina 10 108} { Sohit 20 110} {Mina 304 1098}]
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva