اسلایس ها (Slices)
اسلایس (Slice) شبیه آرایه است ولی انعطاف پذیرتر. اسلایس می تواند بزرگ و کوچک شود. آرایه طول ثابت دارد. پس اسلایس برای کار روزمره راحت تر است.
ساخت اسلایس با []type{values}
می توان اسلایس خالی یا مقداردهی شده ساخت. طول (Length) تعداد عناصر است. ظرفیت (Capacity) حداکثر رشد فعلی اسلایس است.
package main
import (
"fmt"
)
func main() {
myslice1 := []int{}
fmt.Println(len(myslice1))
fmt.Println(cap(myslice1))
fmt.Println(myslice1)
myslice2 := []string{"Go", "Slices", "Are", "Powerful"}
fmt.Println(len(myslice2))
fmt.Println(cap(myslice2))
fmt.Println(myslice2)
}
نکته: تابع len طول را می دهد و cap ظرفیت را می دهد.
ساخت اسلایس از روی آرایه
می توان از یک بازه آرایه، اسلایس ساخت. شروع شامل می شود و پایان شامل نمی شود. ظرفیت از جای شروع تا انتهای آرایه است.
package main
import (
"fmt"
)
func main() {
arr1 := [6]int{10, 11, 12, 13, 14, 15}
myslice := arr1[2:4]
fmt.Printf("myslice = %v\n", myslice)
fmt.Printf("length = %d\n", len(myslice))
fmt.Printf("capacity = %d\n", cap(myslice))
}
ساخت اسلایس با make()
تابع make اسلایس می سازد. پارامتر دوم طول است. پارامتر سوم ظرفیت است. اگر ظرفیت ندهی، برابر طول می شود.
package main
import (
"fmt"
)
func main() {
myslice1 := make([]int, 5, 10)
fmt.Printf("myslice1 = %v\n", myslice1)
fmt.Printf("length = %d\n", len(myslice1))
fmt.Printf("capacity = %d\n", cap(myslice1))
myslice2 := make([]int, 5)
fmt.Printf("myslice2 = %v\n", myslice2)
fmt.Printf("length = %d\n", len(myslice2))
fmt.Printf("capacity = %d\n", cap(myslice2))
}
گام های عملی
- یک اسلایس خالی بساز و
lenوcapرا چاپ کن. - از آرایه یک اسلایس بگیر و طول و ظرفیتش را ببین.
- با
makeاسلایس بساز و ظرفیت را تغییر بده.
جمع بندی سریع
- اسلایس ها پویا هستند.
lenتعداد عناصر است.capظرفیت رشد فعلی است.- می توان از آرایه یا
makeساخت.
برای شروع، صفحه آرایه ها را مرور کن. سپس برای تغییر عناصر، به ویرایش اسلایس ها برو. این صفحه درباره اسلایس ها مرجع کوتاه و کاربردی است.