Sobes.tech
Junior — Middle

Feltételezhető, hogy a Go-ban egy szelet elemei már növekvő vagy csökkenő sorrendben vannak?

sobes.tech MI

Válasz az MI-től

Nem, a Go nyelvben a szelet (slice) elemei nem garantáltan rendezettek sem növekvő, sem csökkenő sorrendben. A szelet egyszerűen egy dinamikus tömb, amely az elemeket a hozzáadás vagy módosítás sorrendjében tárolja.

Ha rendezni kell egy szeletet, akkor explicit módon kell meghívni a sort csomag rendezési függvényeit, például:

import (
    "fmt"
    "sort"
)

func main() {
    nums := []int{5, 3, 8, 1}
    sort.Ints(nums) // rendezés növekvő sorrendben
    fmt.Println(nums) // [1 3 5 8]
}

E nélkül a rendezés nélkül a elemek sorrendje a program logikájától függ, és nem rendezett.