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}]