Ordinamento
#
// Il package `sort` di Go permette di ordinare tipi
// sia built-in, sia user-defined. Daremo per prima cosa
// un'occhiata al sorting per i built-in.
package main
import "fmt"
import "sort"
func main() {
// I metodi di sort sono specifici per il tipo
// built-in; qui vediamo un esempio per le string.
// Nota che il sorting non richiede né l'uso dei
// pointer, né restituisce un nuovo slice, ma modifica
// lo slice che viene passato ordinando
// direttamente elementi gli elementi al suo
// interno.
strs := []string{"c", "a", "b"}
sort.Strings(strs)
fmt.Println("Strings:", strs)
// Un esempio del sorting di `int`.
ints := []int{7, 2, 4}
sort.Ints(ints)
fmt.Println("Ints: ", ints)
// Possiamo anche usare `sort` per determinare
// se uno slice è già stato ordinato.
s := sort.IntsAreSorted(ints)
fmt.Println("Sorted: ", s)
}
# Eseguendo il nostro programma verrano stampati gli
# slice di stringhe e di int, e `true` come risultato
# della nostra chiamata alla funzione `AreSorted`.
$ go run sorting.go
Strings: [a b c]
Ints: [2 4 7]
Sorted: true