سینتکس Go
ساختار کد Go: پکیجها، import، توابع، تورفتگی و قوانین نگارشی.
ساختار کلی یک برنامه Go
package main ← ۱. تعریف پکیج
import "fmt" ← ۲. وارد کردن کتابخانهها
func main() { ← ۳. تابع اصلی
fmt.Println("...") ← ۴. دستورات
}
پکیجها (Packages)
هر فایل Go با تعریف پکیج شروع میشود. پکیجها مثل پوشههایی هستند که کدهای مرتبط را گروهبندی میکنند:
package main— پکیج ویژه برای برنامههای اجراییpackage fmt— پکیج کتابخانهای (قابل import)- پکیجهای خودتان:
package myutils
دستور import
// یک پکیج
import "fmt"
// چند پکیج
import (
"fmt"
"strings"
"time"
)
وقتی چند پکیج import میکنید، از پرانتز و فرمت گروهی استفاده کنید — این سبک استاندارد Go است.
توابع (Functions)
func نام(پارامتر نوع) نوعبازگشتی {
// بدنه تابع
}
// مثال
func add(a int, b int) int {
return a + b
}
// پارامترهای همنوع میتوانند فشرده شوند
func add(a, b int) int {
return a + b
}
تورفتگی (Indentation)
برخلاف Python، تورفتگی در Go اجباری برای معنا نیست اما استاندارد Go است:
- از Tab (یا ۴ فاصله) استفاده کنید
- ابزار
gofmtبهطور خودکار کد را استاندارد میکند - اکثر ویرایشگرها هنگام ذخیره، این کار را انجام میدهند
آکولادها
قانون مهم: آکولاد باز باید در همان خط باشد!
// ✅ درست
func main() {
fmt.Println("سلام")
}
// ❌ غلط — خطای کامپایل!
func main()
{
fmt.Println("سلام")
}
حساسیت به حروف
| نام | معنا در Go |
|---|---|
fmt.Println | حرف اول بزرگ = عمومی (قابل استفاده از بیرون پکیج) |
fmt.println | حرف اول کوچک = خصوصی (فقط داخل پکیج) |
این قاعده بزرگی/کوچکی حرف اول یکی از هوشمندانهترین ویژگیهای Go است — بدون کلیدواژههای public/private!
نقطهویرگول
در Go نیازی به نوشتن ; نیست. کامپایلر هنگام کامپایل، خودش در انتهای خطوط اضافه میکند. اما اگر خواستید چند دستور در یک خط بنویسید:
fmt.Println("سلام"); fmt.Println("دنیا") ← مجاز اما غیراستاندارد
کلیدواژههای Go
Go فقط ۲۵ کلیدواژه دارد — کمترین تعداد بین زبانهای مدرن!
break case chan const continue
default defer else fallthrough for
func go goto if import
interface map package range return
select struct switch type var
این مبحث بخشی از دوره آموزش کامل گو است.