Sobes.tech
Junior — Middle

Kaip teisingai kurti ir inicijuoti slices Go kalboje?

sobes.tech AI

Atsakymas iš AI

Go kalboje, griežtiniai (slices) yra dinaminės duomenų struktūros, kurios nurodo nuorodą į masyvą su nurodyta ilgiu ir talpa.

Griežtiniai gali būti kuriami ir inicializuojami keliais būdais:

  1. Be inicializacijos deklaruojamas griežtinys (nil-griežtinys):
var s []int // nil-griežtinys, ilgis ir talpa 0
  1. Naudojant literatūrą inicijuojamas griežtinys:
s := []int{1, 2, 3} // ilgis 3
  1. Sukuriamas griežtinys naudojant funkciją make:
s := make([]int, 5) // ilgis 5, užpildytas nuliais
s2 := make([]int, 3, 10) // ilgis 3, talpa 10

make funkcija rezervuoja masyvą užkulisiuose ir grąžina nuorodą į jį.

  1. Griežtinio sukūrimas iš masyvo:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // elementų su indeksais 1,2,3 griežtinys

Svarbu atsiminti, kad griežtiniai yra nuorodos į masyvus, todėl pakeitus elementus griežtinyje, keičiasi ir originalus masyvas.

Pavyzdys:

package main
import "fmt"

func main() {
    s := make([]int, 3, 5)
    fmt.Println(s)       // [0 0 0]
    fmt.Println(len(s))  // 3
    fmt.Println(cap(s))  // 5

    s = append(s, 4, 5)
    fmt.Println(s)       // [0 0 0 4 5]
    fmt.Println(len(s))  // 5
    fmt.Println(cap(s))  // 5
}

Šis požiūris leidžia efektyviai dirbti su dinaminiais masyvais Go kalboje.