Junior — Middle
Go'да slices түзүү жана баштоо туура жолдору кандай?
sobes.tech AI
AIден жооп
Go тилинде, бөлүмдөр (slices) — бул динамикалык маалыматтар структуралары, алар белгиленген узундук жана сыйымдуулук менен массивке шилтемени көрсөтөт.
Бөлүмдөрдү түзүү жана баштоо ар кандай жолдор менен жүргүзүлүшү мүмкүн:
- Башталгыссыз бөлүмдү жарыялоо (nil-бөлүм):
var s []int // nil-бөлүм, узундук жана сыйымдуулук 0
- Literal колдонуп бөлүмдү баштоо:
s := []int{1, 2, 3} // узундугу 3 бөлүм
- make функциясы аркылуу бөлүм түзүү:
s := make([]int, 5) // узундугу 5, нөлдөр менен толтурулган бөлүм
s2 := make([]int, 3, 10) // узундугу 3, сыйымдуулугу 10
make функциясы артында массив бөлүп, ага шилтемени кайтарат.
- Массивтен бөлүм түзүү:
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 тилинде динамикалык массивдер менен эффективдүү иштөөгө мүмкүндүк берет.