Sobes.tech
Junior — Middle

Go'да slices түзүү жана баштоо туура жолдору кандай?

sobes.tech AI

AIден жооп

Go тилинде, бөлүмдөр (slices) — бул динамикалык маалыматтар структуралары, алар белгиленген узундук жана сыйымдуулук менен массивке шилтемени көрсөтөт.

Бөлүмдөрдү түзүү жана баштоо ар кандай жолдор менен жүргүзүлүшү мүмкүн:

  1. Башталгыссыз бөлүмдү жарыялоо (nil-бөлүм):
var s []int // nil-бөлүм, узундук жана сыйымдуулук 0
  1. Literal колдонуп бөлүмдү баштоо:
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 тилинде динамикалык массивдер менен эффективдүү иштөөгө мүмкүндүк берет.