در این آموزش، یک معرفی کوتاه از برنامهنویسی به زبان گو دریافت خواهید کرد. در طول این مسیر، شما:
-
گو را نصب میکنید (اگر تا الان این کار را نکردهاید).
-
یک کد ساده "Hello, world" مینویسید.
-
از دستور
goبرای اجرای کد خود استفاده میکنید. -
از ابزار کشف پکیج (Package discovery tool) گو برای پیدا کردن پکیجهایی که میتوانید در کدهای خود استفاده کنید، بهره میبرید.
-
توابع (Functions) یک ماژول خارجی را فراخوانی میکنید.
پیشنیازها
-
مقداری تجربه برنامهنویسی. کدهای اینجا نسبتاً ساده هستند، اما دانستن نکاتی درباره توابع (Functions) به شما کمک میکند.
-
ابزاری برای ویرایش کد. هر ویرایشگر متنی (Text editor) که دارید به خوبی کار خواهد کرد. بیشتر ویرایشگرهای متن پشتیبانی خوبی از گو دارند. محبوبترین آنها VSCode (رایگان)، GoLand (پولی) و Vim (رایگان) هستند.
-
یک ترمینال خط فرمان (Command terminal). گو با استفاده از هر ترمینالی در لینوکس و مک، و همچنین در PowerShell یا cmd در ویندوز به خوبی کار میکند.
نصب گو
کافی است از مراحل بخش دانلود و نصب استفاده کنید.
نوشتن مقداری کد
کار را با برنامه Hello, World شروع کنید.
۱. یک خط فرمان (command prompt) باز کنید و با دستور cd به دایرکتوری home (خانه) خود بروید.
-
در لینوکس یا مک:
cd -
در ویندوز:
cd %HOMEPATH%
۲. یک دایرکتوری به نام hello برای اولین سورس کد گو خود ایجاد کنید. برای مثال، از دستورات زیر استفاده کنید:
mkdir hello
cd hello
۳. مدیریت (رهگیری) وابستگیها را برای کد خود فعال کنید. وقتی کد شما پکیجهای موجود در ماژولهای دیگر را import (فراخوانی) میکند، شما آن وابستگیها را از طریق ماژول اختصاصی خودِ کد مدیریت میکنید. این ماژول توسط یک فایل go.mod تعریف میشود که ماژولهای ارائهدهنده آن پکیجها را رهگیری میکند. این فایل go.mod همراه با کد شما باقی میماند، از جمله در مخزن (repository) سورس کد شما.
برای فعال کردن رهگیری وابستگیها برای کد خود از طریق ایجاد یک فایل go.mod، دستور go mod init را اجرا کنید و نام ماژولی که کد شما در آن قرار خواهد گرفت را به آن بدهید. این نام، همان مسیر ماژول (Module path) است.
در توسعه واقعی، مسیر ماژول معمولاً مکان مخزنی است که سورس کد شما در آن نگهداری خواهد شد. برای مثال، مسیر ماژول ممکن است [github.com/mymodule](https://github.com/mymodule) باشد. اگر قصد دارید ماژول خود را برای استفاده دیگران منتشر کنید، مسیر ماژول باید مکانی باشد که ابزارهای گو بتوانند ماژول شما را از آنجا دانلود کنند. برای اطلاعات بیشتر درباره نامگذاری یک ماژول با مسیر ماژول، بخش مدیریت وابستگیها (Managing dependencies) را ببینید.
برای اهداف این آموزش، فقط از example/hello استفاده کنید.
$ go mod init example/hello
go: creating new go.mod: module example/hello
۴. در ویرایشگر متن خود، یک فایل به نام hello.go ایجاد کنید تا کد خود را در آن بنویسید.
۵. کد زیر را در فایل hello.go خود Paste کرده (بچسبانید) و فایل را ذخیره کنید.
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
این کد گو شماست. در این کد، شما:
-
یک پکیج
mainتعریف میکنید (پکیج راهی برای گروهبندی توابع است و از تمامی فایلهای موجود در یک دایرکتوری تشکیل میشود). -
پکیج محبوب
fmtرا import (فراخوانی) میکنید، که شامل توابعی برای فرمتدهی متن، از جمله چاپ در کنسول است. این پکیج یکی از پکیجهای کتابخانه استاندارد (Standard library) است که هنگام نصب گو دریافت کردهاید. -
یک تابع
mainرا پیادهسازی میکنید تا یک پیام را در کنسول چاپ کند. تابعmainهنگام اجرای پکیجmainبهطور پیشفرض اجرا میشود.
۶. کد خود را اجرا کنید تا پیام خوشآمدگویی را ببینید.
$ go run .
Hello, World!
دستور go run یکی از چندین دستور go است که برای انجام کارها با گو از آن استفاده خواهید کرد. برای دریافت لیستی از سایر دستورات از دستور زیر استفاده کنید:
$ go help
فراخوانی کد در یک پکیج خارجی
وقتی نیاز دارید کد شما کاری انجام دهد که ممکن است قبلاً توسط شخص دیگری پیادهسازی شده باشد، میتوانید به دنبال پکیجی بگردید که دارای توابعی باشد که بتوانید در کد خود استفاده کنید.
۱. پیام چاپشده خود را با استفاده از تابعی از یک ماژول خارجی کمی جذابتر کنید.
-
به سایت
pkg.go.devمراجعه کرده و پکیج "quote" را جستجو کنید. -
در نتایج جستجو، نسخه v1 پکیج
rsc.io/quoteرا پیدا کرده و روی آن کلیک کنید (این پکیج باید در کنار "Other major versions" مربوط بهrsc.io/quote/v4لیست شده باشد). -
در بخش Documentation، زیر قسمت Index، به لیست توابعی که میتوانید از کد خود فراخوانی کنید دقت کنید. شما از تابع
Goاستفاده خواهید کرد. -
در بالای این صفحه، توجه داشته باشید که پکیج
quoteدر ماژولrsc.io/quoteگنجانده شده است.
شما میتوانید از سایت pkg.go.dev برای پیدا کردن ماژولهای منتشرشدهای استفاده کنید که پکیجهای آنها دارای توابعی برای استفاده در کدهای خودتان است. پکیجها درون ماژولها منتشر میشوند -- مانند rsc.io/quote -- جایی که دیگران میتوانند از آنها استفاده کنند. ماژولها در طول زمان با نسخههای جدیدتر بهبود مییابند و شما میتوانید کد خود را برای استفاده از نسخههای بهبودیافته ارتقا دهید.
۲. در کد گو خود، پکیج rsc.io/quote را import کنید و فراخوانیِ تابع Go مربوط به آن را اضافه کنید. پس از افزودن خطوط هایلایتشده (جدید)، کد شما باید شامل موارد زیر باشد:
package main
import "fmt"
import "rsc.io/quote"
func main() {
fmt.Println(quote.Go())
}
۳. نیازمندیهای ماژول جدید و کدهای هش (sums) را اضافه کنید. گو ماژول quote را به عنوان یک نیازمندی اضافه خواهد کرد، و همچنین یک فایل go.sum برای استفاده در احراز هویت ماژول ایجاد میکند. برای اطلاعات بیشتر، بخش احراز هویت ماژولها (Authenticating modules) در مرجع ماژولهای گو را ببینید.
$ go mod tidy
go: finding module for package rsc.io/quote
go: found rsc.io/quote in rsc.io/quote v1.5.2
۴. کد خود را اجرا کنید تا پیام تولیدشده توسط تابعی که فراخوانی کردهاید را ببینید.
$ go run .
Don't communicate by sharing memory, share memory by communicating.
توجه کنید که کد شما تابع Go را فراخوانی کرده و یک پیام هوشمندانه درباره ارتباطات چاپ میکند.
وقتی go mod tidy را اجرا کردید، این دستور ماژول rsc.io/quote که حاوی پکیجِ import شده بود را مکانیابی و دانلود کرد. بهطور پیشفرض، جدیدترین نسخه -- یعنی v1.5.2 -- دانلود شد.
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: منبع مستندات