با آموزش کار با Slices در برنامه نویسی GO در چهاردهمین جلسه از آموزش برنامه نویسی Go در خدمت شما هستیم. لطفا تا انتهای جلسه ما رو همراهی نمایید.
آموزش کار با Slices در برنامه نویسی GO
Slice یا قطعات در زبان برنامه نویسی go یک برداشت از آرایه هاست همانطور که زبانGo به شما اجازه تعریف انواع متغیرها که میتوانند داده ها زیادی نگه دارند،را میدهد،اما هیچ متد داخلی برای افزایش سایز به صورت داینامیک یا ساخت زیر آرایه ندارداما Slice ها این محدودیت را ازبین می برند.و تابع های زیادی برای آرایه ها فراهم میکنند ودر Go بسیار کاربرد دارند.
Go Slice is an abstraction over Go Array. Go Array allows you to define variables that can hold several data items of the same kind but it does not provide any inbuilt method to increase its size dynamically or get a sub-array of its own. Slices overcome this limitation. It provides many utility functions required on Array and is widely used in Go programming.
تعریف یک Slice در برنامه نویسی Go
برای تعریف یکSlice میتوانید آن را به عنوان یک آرایه بدون تعیین سایز تعریف کنید
var numbers []int /* a slice of unspecified size */ /* numbers == []int{0,0,0,0,0}*/ numbers = make([]int,5,5) /* a slice of length 5 and capacity 5*/
توابع len() و cap() در برنامه نویسی Go
Slice یک نوع مفهوم وبرداشت از آرایه است.دراصل از آرایه و زیرمجموعه تابع structure.len() استفاده میکند و تعداد عناصر داخل Slice را برمیگردانددرحالیکه تابع cap() ظرفیت یک slice را برمیگرداند مقال زیر استفاده از این slice است.
package main import "fmt" func main() { var numbers = make([]int,3,5) printSlice(numbers) } func printSlice(x []int){ fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x) }پیشنمایش
خروجی کدبالا
len=3 cap=5 slice=[0 0 0]Nil slice
Nil slice در برنامه نویسی Go
اگر یک slice بدون ورودی تعریف شود،بعنوان یک slice بدون مقدار در نظر گرفته میشود وظرفیت آن صفر میشود
package main import "fmt" func main() { var numbers []int printSlice(numbers) if(numbers == nil){ fmt.Printf("slice is nil") } } func printSlice(x []int){ fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x) }پیشنمایش
خروجی کدبالا
len = 0 cap = 0 slice = [] slice is nil
Subslicing در برنامه نویسی Go
Slice اجازه استفاده از زیر مجموعه(subslice) را نیز میدهد مثال زیر نمونه ای از این استفاده است
package main import "fmt" func main() { /* create a slice */ numbers := []int{0,1,2,3,4,5,6,7,8} printSlice(numbers) /* print the original slice */ fmt.Println("numbers ==", numbers) /* print the sub slice starting from index 1(included) to index 4(excluded)*/ fmt.Println("numbers[1:4] ==", numbers[1:4]) /* missing lower bound implies 0*/ fmt.Println("numbers[:3] ==", numbers[:3]) /* missing upper bound implies len(s)*/ fmt.Println("numbers[4:] ==", numbers[4:]) numbers1 := make([]int,0,5) printSlice(numbers1) /* print the sub slice starting from index 0(included) to index 2(excluded) */ number2 := numbers[:2] printSlice(number2) /* print the sub slice starting from index 2(included) to index 5(excluded) */ number3 := numbers[2:5] printSlice(number3) } func printSlice(x []int){ fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x) }
پیشنمایش
خروجی کد بالا
len = 9 cap = 9 slice = [0 1 2 3 4 5 6 7 8] numbers == [0 1 2 3 4 5 6 7 8] numbers[1:4] == [1 2 3] numbers[:3] == [0 1 2] numbers[4:] == [4 5 6 7 8] len = 0 cap = 5 slice = [] len = 2 cap = 9 slice = [0 1] len = 3 cap = 7 slice = [2 3 4]
توابع append() و copy() در برنامه نویسی Go
Slice به شما اجازه افزایش ظرفیت را بااستفاده از تابع append() می دهد.بااستفاده از تابع copy() محتوای Slice به Slice مقصد کپی میشود مثال:
package main import "fmt" func main() { var numbers []int printSlice(numbers) /* append allows nil slice */ numbers = append(numbers, 0) printSlice(numbers) /* add one element to slice*/ numbers = append(numbers, 1) printSlice(numbers) /* add more than one element at a time*/ numbers = append(numbers, 2,3,4) printSlice(numbers) /* create a slice numbers1 with double the capacity of earlier slice*/ numbers1 := make([]int, len(numbers), (cap(numbers))*2) /* copy content of numbers to numbers1 */ copy(numbers1,numbers) printSlice(numbers1) } func printSlice(x []int){ fmt.Printf("len=%d cap=%d slice=%v\n",len(x),cap(x),x) }خروجی کد بالا به شرح زیر است
len = 0 cap = 0 slice = [] len = 1 cap = 2 slice = [0] len = 2 cap = 2 slice = [0 1] len = 5 cap = 8 slice = [0 1 2 3 4] len = 5 cap = 16 slice = [0 1 2 3 4]
لیست مطالب جلسه قبل برنامه نویسی Go
- آموزش برنامه نویسی Go – زبان برنامه نویسی گو چیست؟ آشنایی با زبان و محیط برنامه نویسی Go
- آموزش برنامه نویسی Go – ساختار برنامه نویسی GO
- آموزش برنامه نویسی Go – قواعد برنامه نویسی GO
- آموزش برنامه نویسی Go – انواع داده در برنامه نویسی GO
- آموزش برنامه نویسی Go – کار با متغیر های برنامه نویسی GO
- آموزش کار با ثابت های برنامه نویسی GO
- ساخت تصمیم در GO و آموزش کار با عملگرها در برنامه نویسی GO
- آموزش کار با حلقه ها در برنامه نویسی GO
- آموزش کار با توابع در برنامه نویسی GO
- آموزش کار با Scope Rules در برنامه نویسی GO
- آموزش کار با آرایه در برنامه نویسی GO
- آموزش کار با اشاره گر ها در برنامه نویسی GO
- آموزش کار ساختار ها در برنامه نویسی GO
پیشنهاد ویژه ۱ : مقالات و کتاب های آموزشی برنامه نویسی GO
پیشنهاد ویژه ۲ : فیلم های آموزشی زبان برنامه نویسی GO
The post آموزش کار با Slices در برنامه نویسی GO appeared first on آموزش برنامه نویسی.