012. Slice ma'lumot turi
Golangda Slice haqida
Kirish
Golangda (Go) dasturlash tilida slice — bu ma'lumotlar turining qulay, kuchli va dinamik turlardan biri hisoblanadi. Slice Go tilidagi massivga o'xshaydi, lekin undan ko'ra ko'proq moslashuvchan. Slice hajmini o'zgartirsa bo'ladigan va yangi bo'laklarni olish imkonini beruvchi kuchli vositadir. Ushbu maqolada slice haqida batafsil tushuntirib, kod misollari bilan tushuntirib beramiz.
Slice nima?
Slice — bu massivga bog'langan ma'lumot tuzilmasi bo‘lib, u massivning bo‘laklarini ifodalaydi. Slice quyidagicha aniqlanadi:
Misol:
Slice yaratish usullari
1. Massivdan slice yaratish
Massivning ma'lum bir qismini olish orqali slice yaratishingiz mumkin:
package main
import "fmt"
func main() {
arr := [5]int{10, 20, 30, 40, 50}
slice := arr[1:4] // Indeks 1 dan 4 gacha (4 o'z ichiga kirmaydi)
fmt.Println(slice) // Natija: [20 30 40]
}
2. make
funksiyasi orqali slice yaratish
make
funksiyasi yordamida slice yaratish juda qulay. Bu usul bo'sh slice yaratadi va unga kerakli o'lcham va sig'im belgilash imkonini beradi.
package main
import "fmt"
func main() {
slice := make([]int, 3, 5) // O'lcham 3, sig'im 5
fmt.Println(slice) // Natija: [0 0 0]
fmt.Println(len(slice)) // Natija: 3 (o'lcham)
fmt.Println(cap(slice)) // Natija: 5 (sig'im)
}
3. To‘g‘ridan-to‘g‘ri qiymatlar bilan yaratish
Slice o‘z ichiga qiymatlarni to‘g‘ridan-to‘g‘ri belgilash orqali ham yaratishingiz mumkin:
package main
import "fmt"
func main() {
slice := []string{"Apple", "Banana", "Cherry"}
fmt.Println(slice) // Natija: [Apple Banana Cherry]
}
Slice bilan ishlash
Element qo‘shish
Slice hajmini o‘zgartirish uchun append
funksiyasidan foydalaniladi:
package main
import "fmt"
func main() {
slice := []int{1, 2, 3}
slice = append(slice, 4, 5) // 4 va 5 ni qo'shish
fmt.Println(slice) // Natija: [1 2 3 4 5]
}
Slice bo‘laklash
Slice o‘zidan yangi bo‘laklar olish imkonini beradi:
package main
import "fmt"
func main() {
slice := []int{10, 20, 30, 40, 50}
newSlice := slice[1:4] // Indeks 1 dan 4 gacha
fmt.Println(newSlice) // Natija: [20 30 40]
}
O‘lcham va sig‘imni tekshirish
len
va cap
funksiyalari yordamida slice'ning hajmi va sig‘imini aniqlash mumkin:
package main
import "fmt"
func main() {
slice := []int{1, 2, 3, 4, 5}
fmt.Println(len(slice)) // Natija: 5
fmt.Println(cap(slice)) // Natija: 5
}
Slice va massivlar farqi
Xususiyat | Massiv | Slice |
---|---|---|
Hajmi | O‘zgarmas | O‘zgaruvchan |
E'lon qilish | var arr [5]int |
var slice []int |
Ishlash samarasi | Yuqori, lekin moslashuvchan emas | Moslashuvchan va kuchli |
Xulosa
Golangda slice dinamik va moslashuvchan ma'lumot turini ifodalaydi. U massivga qaraganda ko‘proq qulaylikni taqdim etadi, xususan, hajmi o‘zgarishi va bo‘laklar bilan ishlash.