Sobes.tech
Junior — Middle

Ինչպես ճիշտ ստեղծել և սկսել slices-երը Go-ում?

sobes.tech AI

Պատասխան AI-ից

Go լեզվում, կտորները (slices) դինամիկ տվյալների կառուցվածքներ են, որոնք ներկայացնում են հղում դեպի զանգված՝ նշելով երկարությունը և կարողությունը:

Կտորները կարող են ստեղծվել և սկզբնապես հարմարեցվել տարբեր եղանակներով:

  1. Կտորի հայտարարում առանց սկզբնական արժեքների (nil-կտոր):
var s []int // nil-կտոր, երկարությունը և կարողությունը 0
  1. Կտորի սկզբնական արժեքների օգտագործմամբ:
s := []int{1, 2, 3} // երկարությամբ 3 կտոր
  1. Ստեղծում է make ֆունկցիայի միջոցով:
s := make([]int, 5) // երկարությամբ 5, լրացված զրոյական արժեքներով
s2 := make([]int, 3, 10) // երկարությամբ 3, կարողությամբ 10

make ֆունկցիան հատկացում է զանգվածի հիշողություն և վերադարձնում հղում դեպի այն:

  1. Ստեղծում է զանգվածից կտոր:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:4] // կտոր՝ տարրերի, որոնց ինդեքսները 1, 2, 3

Կարևոր է հիշել, որ կտորները հղումներ են զանգվածներին, ուստի փոփոխությունները կտորում փոխում են նաև սկզբնական զանգվածը:

Օրինակ՝

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
}

Այս մոտեցումը թույլ է տալիս արդյունավետ աշխատել դինամիկ զանգվածների հետ Go-ում: