زبان برنامهنویسی گو/ساختار و نحوه استفاده از بستهها
ساختار برنامههای گو
[ویرایش]هر برنامهی گو از بستهها (Packages) ساخته شده است. برنامهها از یک بسته اصلی به نام main شروع میشوند که نقطه ورودی برنامه، یعنی تابع main را شامل میشود.
اجزای یک برنامه ساده گو
[ویرایش]یک برنامهی حداقلی گو شامل موارد زیر است:
- تعریف بسته (
package) - وارد کردن بستههای مورد نیاز (
import) - تعریف تابع اصلی (
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) وابستگیها را سادهتر میکند.
- نامگذاری و ساختار مناسب بستهها کلید نگهداری و توسعه راحت کدهای بزرگ است.