Skip to content

Commit

Permalink
Update 1.8-array-slice.md
Browse files Browse the repository at this point in the history
تصحیح متن
  • Loading branch information
r3a70 committed May 20, 2023
1 parent 184d666 commit 2077c55
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions content/chapter 1/1.8-array-slice.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@ slug: go-array
weight: 1008
---

{{< tooltip text="آرایه" note="array" >}} و slice دو نوع تایپ با یک وجه اشتراک در زبان گو می باشند ولی این دو نوع تایپ یکسری تفاوت هایی با هم دارند که در ادامه به این دو تایپ می پردازیم.
{{< tooltip text="آرایه" note="array" >}} و slice دو نوع تایپ با یک وجه اشتراک در زبان گو می باشند ولی این دو نوع تایپ یکسری تفاوت هایی نیز با هم دارند که در ادامه بهشون مپردازیم.

## 1.8.1 تعریف آرایه

{{< tooltip text="آرایه" note="array" >}} یکی از عمومی ترین تایپ ها در زبان های برنامه نویسی می باشد که برای نگه داری گروهی مقادیر از یک نوع تایپ استفاده می شود.
{{< tooltip text="آرایه" note="array" >}} یکی از عمومی ترین تایپ ها در زبان های برنامه نویسی می آرابه هاهستند که برای نگه داری گروهی مقادیر از یک نوع تایپ استفاده می شود.
برای دسترسی به هرکدام از مقادیر درون آرایه باید از {{< tooltip text="اندیس" note="Index" >}} استفاده کرد.
معمولا برای آرایه شما تعداد مشخص و ثابتی را برای تعداد خانه های آرایه مشخص کنید که این آرایه قرار است چندتا مقدار نگه داری کند.
معمولا برای تعریف آرایه شما تعداد مشخص و ثابتی را برای تعداد مقادیر مشخص میکنید. یعنی این آرایه قرار است چندتا مقدار نگه داری کند.

![array](../../assets/img/content/chapter1/array-slice/1.png)

در زیر یک نمونه کد در خصوص {{< tooltip text="آرایه" note="array" >}} قرار دادیم :
در مثال زیر یک نمونه کد در خصوص چگونگی تعریف {{< tooltip text="آرایه" note="array" >}} قرار داده ایم :

```go
package main
Expand All @@ -37,7 +37,7 @@ $ go run array.go
1. یک متغیر کوتاه از نوع آرایه با نام **arrayInts** تعریف کردیم.
2. ظرفیت آرایه را با عدد **۵** تعیین کردیم (یعنی این آرایه فقط ۵ تا مقدار بیشتر نگه داری نمی کند)
3. سپس تایپ آرایه را از نوع **int** مشخص کردیم.
4. در نهایت در همانجا آرایه را مقدار دهی کردیم.
4. در نهایت در همانجا آرایه را مقدار دهی کردیم. در زبان گو مقدار دهی با باز کردن `{}` به انگلیسی `curly bracket` انجام میشود.


## 1.8.2 مفهوم اندازه و ظرفیت (size, capacity)
Expand Down Expand Up @@ -66,13 +66,13 @@ $ go run array.go

{{< playground url=QjVqcn1nH7Z >}}

در کد فوق ما یک آرایه با اندازه ۳ تعریف کردیم و ۴ تا مقدار قرار دادیم و پس اجرا با خطای تعداد مقادیر بیشتر از اندازه و ظرفیت می باشد مواجه شدیم.
در کد فوق ما یک آرایه با اندازه ۳ تعریف کردیم و ۴ تا مقدار داخلش قرار دادیم و پس از اجرا, با خطای `تعداد مقادیر بیشتر از اندازه و ظرفیت می باشد` مواجه شدیم.

### 1.8.2.1 تابع len و cap

برای آرایه و slice ما ۲ تا تابع داریم که می توانیم اندازه و ظرفیت یک آرایه یا slice را بگیریم.

- تابع **len** یکی از توابعی می باشد خیلی کاربردی و پراستفاده هنگام کار با آرایه یا slice می باشد که می توانید اندازه آرایه یا slice را بگیرید.
- تابع **len** یکی از توابع بسیار کاربردی و پراستفاده هنگام کار با آرایه یا slice می باشد که می توانید اندازه آرایه یا slice را بگیرید.
- تابع **cap** ظرفیت آرایه و slice را نمایش می دهد.

```go
Expand All @@ -95,7 +95,7 @@ array [a b c], len 3, cap 3

## 1.8.3 تعریف آرایه و مقدارهی

در زیر ما یک آرایه با مقدار پیش فرض و اندازه مشخص تعریف کردیم و قصد داریم در ادامه کد مقداردهی کنیم.
در مثال زیر ما یک آرایه با مقدار 5 تعریف کردیم و قصد داریم در ادامه کد, آرایه رو مقداردهی کنیم.

```go
package main
Expand Down Expand Up @@ -127,12 +127,12 @@ array nums values [1 2 10 0 999], len 5, cap 5
![array](../../assets/img/content/chapter1/array-slice/2.png)

1. در کد فوق در ابتدا ما یک آرایه بدون مقدار تعریف کردیم.
2. سپس با استفاده از {{< tooltip text="اندیس" note="Index" >}} مقدار را خانه مشخص قرار دادیم.
2. سپس با استفاده از {{< tooltip text="اندیس" note="Index" >}} مقدار را در خانه مشخص قرار دادیم.


### 1.8.3.1 تعریف آرایه با اندازه تعیین شده توسط کامپایلر
### 1.8.3.1 تعریف آرایه با اندازه تعیین شده توسط کامپایلر `(شما اندازه رو بهش نمیدین.)`

شما در زبان گو می توانید با استفاده از `...` یک آرایه با اندازه مشخص شده توسط کامپایلر تعریف کنید.
شما در زبان گو می توانید با استفاده از `...` بهش میگن `Ellipsis` یک آرایه با اندازه مشخص شده توسط کامپایلر تعریف کنید.

```go
package main
Expand All @@ -153,7 +153,7 @@ array nums values [1 25 45 8797 78 879 541 11], len 8, cap 8
{{< playground url=EL7gAmE7HR- >}}

{{< hint danger >}}
توجه کنید زمانیکه `...` برای تعریف آرایه استفاده می کنید فقط در همان لحظه تعریف می توانید مقدار دهی کنید.
توجه کنید زمانیکه `...` `(Ellipsis)` برای تعریف آرایه استفاده می کنید فقط در همان لحظه تعریف می توانید آرایه رو مقدار دهی کنید.
{{< /hint >}}

### 1.8.3.2 تعریف آرایه دوبعدی یا چندبعدی
Expand Down

0 comments on commit 2077c55

Please sign in to comment.