Skip to content

Commit

Permalink
Update 1.13-defer-panic-recovery.md
Browse files Browse the repository at this point in the history
تصحیح متن
حذف تعریف اشتباه از توابع inline
اضافه کردن توضیح در باره defer
  • Loading branch information
r3a70 authored May 28, 2023
1 parent 175292e commit a02a13f
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions content/chapter 1/1.13-defer-panic-recovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ world
```


### 1.13.1.1 تعویق (defer) تابع درون خطی (inline)
### 1.13.1.1 تعویق (defer) در توابع (Anonymous)

شما خیلی ساده می توانید توابع درون خطی را تعویق بندازید.
شما خیلی ساده می توانید با استفاده از توابع `Anonymous` `توابع بینام یا گمنام :)` اجرای قسمتی از برنامه خودتون رو به تعویق بندازین. به مثال زیر توجه کنید :

```go
package main
Expand All @@ -50,10 +50,11 @@ $ go run main.go
Executed
In inline defer
```
به این نکته توجه کنید که `defer` قبل از `return` صدا زده میشود. یعنی قبل از اینکه تابع شما خروجی را برگشت بدهد `اگه تابع خروجی داشته باشه` **defer** اجرا خواهد شد.

### 1.13.1.2 تعویق (defer) چند تابع در یک تابع
### 1.13.1.2 تعویق (defer) چندین تابع درون یک تابع

در کد زیر ما داخل یک تابع چند تابع را تعویق (defer) کردیم.
در کد زیر, ما داخل یک تابع چند تابع را با استفاده از (defer) به تعویق انداختیم. به مثال زیر توجه کنید:

```go
package main
Expand All @@ -75,7 +76,7 @@ $ go run main.go
2
1
```
**دقت داشته باشید که ارزیابی مقادیر پارامترهای ورودی برای تابعی که آن را difer کردیم در همان لحظه call شدن آن انجام میشود همانند کد زیر:
**دقت داشته باشید که مقداردهی پارامترهای ورودی, برای تابعی که آن را difer کردیم در همان لحظه call شدن آن انجام میشود. به مثال زیر توجه کنید:**
```shell
package main

Expand All @@ -96,6 +97,7 @@ $ go run main.go
First
1
```
در این مرحله شما باید پی برده باشید که **defer** در همان خطی که نوشته شده است صدا زده میشود, ولی اجرای آن دقیقا به قبل از **return** در تابع موکول میشود.

## 1.13.2 پانیک (panic)

Expand Down

0 comments on commit a02a13f

Please sign in to comment.