پرش به محتوا

زبان برنامه‌نویسی گو/ساختار و نحوه استفاده از بسته‌ها

ویکی‎کتاب، کتابخانهٔ آزاد

ساختار برنامه‌های گو

[ویرایش]

هر برنامه‌ی گو از بسته‌ها (Packages) ساخته شده است. برنامه‌ها از یک بسته اصلی به نام main شروع می‌شوند که نقطه ورودی برنامه، یعنی تابع main را شامل می‌شود.

اجزای یک برنامه ساده گو

[ویرایش]

یک برنامه‌ی حداقلی گو شامل موارد زیر است:

  1. تعریف بسته (package)
  2. وارد کردن بسته‌های مورد نیاز (import)
  3. تعریف تابع اصلی (func main)

مثال برنامه "سلام دنیا":

package main

import "fmt"

func main() {
    fmt.Println("سلام دنیا!")
}

بسته‌ها (Packages) در زبان گو

[ویرایش]

بسته‌ها واحدهای سازمان‌دهی کد در زبان Go هستند. هر فایل Go باید در ابتدای خود نام بسته را داشته باشد.

  • بسته‌ها به گروه‌بندی کدهای مرتبط کمک می‌کنند.
  • بسته‌ی main مشخص می‌کند برنامه اجرایی است.
  • بسته‌های غیر main معمولا کتابخانه یا کدهای قابل استفاده مجدد را تعریف می‌کنند.
  • هر بسته می‌تواند شامل توابع، متغیرها، ساختارها (structs) و اینترفیس‌ها باشد.

تعریف بسته

[ویرایش]

در ابتدای هر فایل باید نام بسته مشخص شود، برای مثال:

package greetings

وارد کردن بسته‌ها (Import)

[ویرایش]

برای استفاده از قابلیت‌های بسته‌های دیگر، باید آن‌ها را وارد (import) کنید. وارد کردن به دو شکل انجام می‌شود:

  • وارد کردن تک‌ی:
import "fmt"
  • وارد کردن چندتایی با پرانتز:
import (
    "fmt"
    "math/rand"
)

بسته‌های استاندارد

[ویرایش]

زبان Go دارای مجموعه بزرگی از بسته‌های استاندارد است که امکانات متنوعی را فراهم می‌کنند، مانند:

  • fmt برای ورودی/خروجی متنی
  • math و math/rand برای عملیات ریاضی و تولید اعداد تصادفی
  • net/http برای برنامه‌نویسی شبکه و وب
  • os برای تعامل با سیستم‌عامل

ساختار و استفاده از بسته‌های سفارشی

[ویرایش]

برای ساخت بسته‌های اختصاصی می‌توانید در یک پوشه جداگانه فایل‌های Go ایجاد کنید و نام بسته را در ابتدای فایل مشخص کنید.

مثال بسته‌ای به نام greetings:

// فایل greetings/greetings.go
package greetings

import "fmt"

// تابعی برای نمایش پیام خوش‌آمدگویی
func SayHello(name string) {
    fmt.Printf("سلام، %s!\n", name)
}

و برای استفاده از این بسته در برنامه اصلی:

package main

import "yourmodule/greetings" // مسیر ماژول خود را وارد کنید

func main() {
    greetings.SayHello("علی")
}

مدیریت ماژول‌ها و وارد کردن بسته‌ها

[ویرایش]

از نسخه Go 1.11 به بعد، سیستم مدیریت ماژول‌ها (Go Modules) معرفی شده است که امکان مدیریت وابستگی‌ها و بسته‌ها را آسان می‌کند.

برای فعال‌سازی ماژول در پروژه:

go mod init yourmodule

برای اضافه کردن بسته‌های خارجی از دستور:

go get example.com/some/package

قوانین نام‌گذاری بسته‌ها

[ویرایش]
  • نام بسته باید کوتاه و به زبان انگلیسی باشد.
  • معمولاً نام بسته مطابق با نام پوشه است.
  • نام بسته باید معرف وظیفه و محتوای آن باشد.
  • در بسته‌ها از حروف کوچک استفاده می‌شود و فاصله یا کاراکترهای خاص مجاز نیست.

ساختار پوشه‌ها و بسته‌ها در پروژه‌های بزرگ

[ویرایش]

برای مدیریت پروژه‌های بزرگ، معمولاً ساختار دایرکتوری به این شکل است:

/yourmodule

 /cmd          # فایل‌های اجرایی (main packages)
 /pkg          # کتابخانه‌های عمومی
 /internal     # کدهای خصوصی ماژول
 /greetings    # بسته greetings

نکات مهم در استفاده از بسته‌ها

[ویرایش]
  • تنها توابع، متغیرها و نوع‌هایی که نام آن‌ها با حرف بزرگ شروع شود (Capitalized) برای بسته‌های دیگر قابل دسترسی‌اند (public).
  • نام‌های با حرف کوچک خصوصی (private) به همان بسته محدود می‌شوند.
  • برای دسترسی به اعضای بسته، نام بسته به عنوان پیشوند استفاده می‌شود، مانند fmt.Println.

جمع‌بندی

[ویرایش]
  • زبان Go بر پایه بسته‌ها ساخته شده است که کد را سازمان‌دهی و قابل استفاده مجدد می‌کنند.
  • هر فایل Go باید یک بسته مشخص داشته باشد.
  • بسته main برای برنامه‌های اجرایی و بسته‌های دیگر برای کتابخانه‌ها استفاده می‌شود.
  • با استفاده از کلیدواژه import می‌توانید بسته‌های استاندارد و سفارشی را وارد کنید.
  • سیستم مدیریت ماژول (Go Modules) وابستگی‌ها را ساده‌تر می‌کند.
  • نام‌گذاری و ساختار مناسب بسته‌ها کلید نگهداری و توسعه راحت کدهای بزرگ است.