1 ساختار اصلی یک برنامه Go

یک برنامه Go با اعلان یک بسته شروع می‌شود، که به آن اعلانیه بسته گفته می‌شود. سپس وارد کردن بسته‌های مورد نیاز، اعلان متغیرهای سطح بسته، ثابت‌ها، اعلان نوع و در نهایت توابعی که درون بسته وجود دارند. با گرفتن "Hello World" به عنوان یک مثال، ساختار پایه یک برنامه Go به صورت زیر است:

package main // اعلان بسته اصلی، نشان دهنده برنامه اجرایی مستقل است

import "fmt" // وارد کردن بسته fmt که شامل توابع ورودی و خروجی است

// تابع main، نقطه ورودی برنامه
func main() {
    fmt.Println("Hello, World!") // چاپ Hello World در ترمینال
}

مفهوم و هدف بسته‌ها

در زبان Go، یک بسته مجموعه‌ای از چندین فایل منبع Go است و به عنوان یک مکانیزم بازنگری کد سطح بالا عمل می‌کند. هر فایل در Go به یک بسته تعلق دارد و نام بسته باید همانند نام فهرستی باشد که در آن واقع شده است.

قوانین نام‌گذاری فایل‌های کد منبع

نام‌گذاری فایل‌های منبع Go عموماً حروف کوچک را دنبال می‌کند و شامل فاصله یا کاراکترهای خاصی نمی‌شود، مانند hello_world.go. نام فایل منبع نیازی به اتساق با نام بسته ندارد، اما اظهارات اعلان بسته در تمام فایل‌های یک بسته باید نام‌های بسته‌های متوالی داشته باشند.

استفاده از توضیحات در برنامه

در زبان Go، توضیحات به دو شکل زیر می‌آیند: توضیحات یک خطی که با // شروع می‌شوند و توضیحات چند خطی که با /* شروع می‌شوند و با */ پایان می‌یابند. محتوای توضیحات توسط کامپایلر نادیده گرفته می‌شود.

// این یک توضیح یک خطی است

/*
این یک توضیح چند خطی است
که بر روی چندین خط ادامه دارد
*/

2 تابع main و نقطه ورودی برنامه

در یک برنامه Go، تابع main به صورت ویژه به عنوان نقطه ورودی برنامه طراحی شده است. Runtime Go به طور خودکار تابع main درون بسته اصلی را صدا می‌زند تا اجرای برنامه را شروع کند.

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

تابع main بدون آرگومان است و مقادیر بازگشتی ندارد. پس از اجرای تابع main، برنامه به طور خودکار پایان می‌یابد. اگر یک کد وضعیت مورد نیاز برای بازگشت برنامه مورد نیاز باشد، باید از تابع os.Exit استفاده شود.

3 ساخت و اجرای برنامه

استفاده از دستور go build

اجرای دستور go build فایل کد منبع را کامپایل می‌کند و یک فایل اجرایی تولید می‌کند. در ترمینال، به دایرکتوری که فایل منبع در آن واقع شده است می‌روید و سپس دستور زیر را وارد می‌کنید:

go build hello_world.go

پس از اجرای موفقیت‌آمیز این دستور، یک فایل قابل اجرا به نام hello_world (یا hello_world.exe در ویندوز) در دایرکتوری فعلی مشاهده خواهید شد.

استفاده از دستور go run

دستور go run کد برنامه Go را کامپایل و اجرا می‌کند که برای تست و توسعه‌ی سریع بسیار مناسب است. برای اجرای برنامه Hello World، می‌توانید وارد کنید:

go run hello_world.go

بعد از اجرای این دستور، شما باید فوراً خروجی "Hello, World!" را در ترمینال ببینید.

4. خروجی برنامه

در یک برنامه Go، می‌توان از تابع Println ارائه شده توسط بسته fmt برای چاپ اطلاعات در ترمینال استفاده کرد. مثال کد زیر یک نمونه از چاپ "Hello, World!" به ترمینال است:

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!") // چاپ در ترمینال
}

پس از اجرای برنامه، خروجی می‌تواند به طور مستقیم در ترمینال مشاهده شود. به علاوه، می‌توان با استفاده از بسته log یا با مستقیم مدیریت جریان خروجی استاندارد os.Stdout نیازهای خروجی پیچیده تر را دست یافت.

import "os"
os.Stdout.WriteString("Hello, World!\n") // مدیریت مستقیم جریان خروجی استاندارد
import "log"
log.Println("Hello, World!") // استفاده از بسته log برای خروجی که حاوی اطلاعات تاریخ و زمان است

این روش‌های پایه‌ای خروجی ابزارهای مهمی برای تعامل با کاربران هستند و به طور معمول برای اشکال‌زدایی برنامه‌ها برای چاپ اطلاعات مهم استفاده می‌شوند.