Skip to content

Commit

Permalink
Merge pull request #293 from mohammad-arian/main
Browse files Browse the repository at this point in the history
providing better example
  • Loading branch information
Ja7ad authored Sep 1, 2023
2 parents 1a1ddfb + 62600bb commit 5a7d59d
Showing 1 changed file with 13 additions and 36 deletions.
49 changes: 13 additions & 36 deletions content/chapter 1/1.12-packages-import.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,47 +92,24 @@ func main() {

## 1.12.3 اسم‌های عمومی و خصوصی (Export و Unexport)

همه توابع، متغیر‌ها و تایپ‌هایی که تعریف میکنید، اگر اول حرف اسم‌ آن‌ها را بزرگ بزارید، به این منظور است که آن را به صورت عمومی تعریف کرده‌اید و خارج از پکیج, آن تابع، متغیر یا تایپ قابل دسترسی است, اما اگر شما حرف اول اسم توابع، متغیرها و تایپ‌هایی که تعریف کردید را کوچک بگذارید، به این معنی است که فقط داخل این پکیج, آن تابع، متغیر یا تایپ قابل تعریف و استفاده است و خارج از پکیج قابل استفاده نیست.

همه توابع، متغیر‌ها، ثابت ها و تایپ‌هایی که با حروف کوچک شروع می‌شوند، فقط در همان پکیج قابل دسترس هستند. برای عمومی کردن آنها، حرف اول آنها را به صورت Capital می‌نویسیم.
برای مثال به کد زیر نگاه کنید:

```go
package main

import (
"fmt"
"math"
)

func main() {
fmt.Println(math.MaxInt64) // result: 9223372036854775807
}
```

در کد بالا ما از دو پکیج fmt و math استفاده کردیم. به دلیل اینکه اولین حرف تابع Println از پکیج fmt بزرگ است ما می‌توانیم داخل پکیج main خود از آن تابع استفاده کنیم, و همینطور برای پکیج math هم به همین دلیل.

حالا فرض کنیم که داخل پکیج math ما می‌خواهیم عدد pi را برگردانیم و ممکن است این متغییر فقط داخل این پکیج تعریف شده باشد، پس اگر کاراکتر اول را به صورت کوچک بذاریم با خطا مواجه خواهیم شد:

```go
package main

import (
"fmt"
"math"
)

func main() {
fmt.Println(math.MaxInt64)
fmt.Println(math.pi)
package main

import "encoding/json"

type jSON struct {
Name string `json:"name"`
}

func main() {
var data []byte
json.Unmarshal(data, &jSON{})
}

// result:
./prog.go:10:19: undefined: math.pi
Go build failed.
```

برای حل خطای بالا کافی است pi را به Pi تغییر دهید.

چون پکیج json نیاز داره تا فیلد Name رو تغییر بده پس در نتیجه در کد بالا حتما باید این فیلد رو با حرف بزرگ می‌نوشتیم.
## 1.12.4 اضافه کردن پکیج‌های 3rd party

فرض کنید می‌خواهیم از پکیج [ Gin (github.com)](https://github.com/gin-gonic/gin) استفاده کنیم، برای اضافه کردن این پکیج ما ‌می‌توانیم به دو شکل زیر آن را اضافه کنیم.
Expand Down

0 comments on commit 5a7d59d

Please sign in to comment.