
Go (همچنین به عنوان Golang شناخته می شود) یک زبان برنامه نویسی متن باز است که به صورت ایستا تایپ می شود. در ابتدا توسط گوگل توسعه داده شد. برخی از ویژگی های قابل توجه Go عبارتند از: سادگی، کارایی بالا، خوانایی و کارایی.
مانند هر زبان برنامه نویسی محبوب دیگری، کتابخانه استاندارد Go مجموعه ای غنی از بسته ها را ارائه می دهد. با این حال، ما همچنین میتوانیم عملکردها را با گنجاندن بستههای شخص ثالث گسترش دهیم. این راهنما خواهد بود واردات بسته ها و گنجاندن آنها در پروژه های Go خود را نشان دهید.
پیش نیازها
برای پیروی از این راهنما، به اجزای زیر نیاز دارید که در اختیار داشته باشید:
مرحله 1 – Go را نصب کنید
ما قبلاً در مورد نصب زبان برنامه نویسی Core Go در اوبونتو 20.04 بحث کرده ایم. با این حال، یک روش جایگزین ساده تر وجود دارد:
g (یک مدیر نسخه سبک Go).
دلیلی که استفاده خواهیم کرد
g این است که هیچ یک از نسخه های Go موجود از اوبونتو یا بسته های اسنپ آخرین نسخه Go را در دسترس ندارند (نسخه 1.18 در زمان نوشتن این راهنما). همیشه توصیه می شود از آخرین نسخه موجود هر بسته زبان برنامه نویسی استفاده کنید.
دستور زیر اجرا خواهد شد
g اسکریپت نصب:
wget -qO- https://git.io/g-install | sh -s
wget –qO– https://git.io/g–نصب | ش –با |
برای اعمال تغییرات باید جلسه پوسته را مجددا راه اندازی کنید. پس از راه اندازی مجدد، نصب را بررسی کنید:
پس از نصب Go، نصب آن نیز توصیه می شود
گوپل ها . این سرور رسمی زبان Go است. این با بسیاری از ویرایشگرهای متن مانند VS Code، Vim، Emacs، Sublime Text، Atom و بسیاری دیگر سازگار است. دستور زیر را اجرا کنید:
به نصب golang.org/x/tools/gopls@latest بروید
من دارم میروم نصب گلنگ.org/ایکس/ابزار/گوپل ها@آخر |
محیط برنامه نویسی Go ما اکنون آماده است.
مرحله 2 – یک نمونه اسکریپت Go ایجاد کنید
تمام کدهای نشان داده شده در این آموزش در یک اسکریپت Go جا می شوند. یک نمونه اسکریپت Go ایجاد کنید:
پس از ایجاد تغییرات در اسکریپت، می توانیم آن را با استفاده از دستور Go زیر اجرا کنیم:
در اینجا کامپایلر Go کد را در حالت مفسر اجرا می کند.
مرحله 3 – استفاده از بسته های استاندارد کتابخانه
Go با مجموعه عظیمی در کتابخانه استاندارد خود عرضه می شود. این شامل چندین بسته است، به عنوان مثال:
- fmt: I/O فرمت شده را با توابع C مانند (
printf و
اسکن کردن ). - http: این بسته توابعی برای ایجاد خدمات وب، ارسال و بازیابی داده ها از طریق ارائه می دهد
http پروتکل و غیره
برای گنجاندن هر بسته در یک پروژه Go، باید با استفاده از آن مستقر شود
وارد كردن بیانیه. بیانیه توسط
وارد كردن کلمه کلیدی همراه با نام بسته مثلا واردات
ریاضیات/رند عبارت import به شکل زیر خواهد بود:
کد زیر توابع مختلفی را پیاده سازی می کند
ریاضیات/رند بسته:
بسته اصلی import “math/rand” func main() { for i := 0; من < 10; i++ {println(rand.Intn(25))}}
بسته بندی اصلی وارد كردن “ریاضی/رند” تابع اصلی() { برای من := 0; من < 10; من++ { println(رند.درونی؛ داخلی(25)) } } |
این کد یک حلقه for ساده را نشان می دهد که 10 عدد صحیح تصادفی (0 تا 24) را روی صفحه چاپ می کند. اینجا:
- رند.درونی؛ داخلی() : این فراخوانی تابع یک عدد صحیح تصادفی را برمی گرداند.
- رند.درونی؛ داخلی() : به طور مشابه کار می کند
رند.درونی؛ داخلی() اما پارامتری را می پذیرد که محدوده ای را برای اعداد صحیح دلخواه (از 0 تا عدد مشخص شده) مشخص می کند.
سپس کد را اجرا کنید:
نتیجه به این صورت خواهد بود:
توجه داشته باشید که خروجی دقیقاً یکسان خواهد بود زیرا بذر تولید کننده اعداد تصادفی به طور پیش فرض یک مقدار ثابت است. این ماهیت مولد اعداد شبه تصادفی است. در اینجا می توانید درباره دانه تصادفی اطلاعات بیشتری کسب کنید.
مرحله 4 – چندین بسته را وارد کنید
پروژه های بزرگتر و پیچیده تر باید شامل چندین بسته باشد. چگونه آنها را به کد Go خود وارد می کنید؟ یکی از گزینه های معتبر استفاده از گزارش های واردات جداگانه برای هر بسته وارداتی است. با این حال، این رویکرد در مقایسه با ساختار واردات زیر ناکارآمد است:
وارد كردن ( “
وارد كردن ( “ “ “ ) |
در اینجا، یک عبارت import شامل چندین بسته به طور همزمان است. این مقدار کد مورد نیاز برای نوشتن را کاهش می دهد و در عین حال خوانایی را بهبود می بخشد.
کد زیر این تابع را عملی می کند:
بسته اصلی import ( “fmt” “math/rand” ) func main() { for i := 0; من < 10; i++ { fmt.Printf("%d) %dn", i, rand.Intn(25)) } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | بسته بندی اصلی وارد كردن ( “fmt” “ریاضی/رند” ) تابع اصلی() { برای من := 0; من < 10; من++ { fmt.Printf(“%d) %dn”، من، رند.درونی؛ داخلی(25)) } } |
کد را اجرا کنید:
نتیجه چیزی شبیه به این خواهد بود:
مرحله 5 – کتابخانه های Go اضافی را نصب کنید
کتابخانه استاندارد Go همراه با تعدادی بسته مفید است. از نظر طراحی، آنها هدف کلی هستند. این به توسعه دهندگان اجازه می دهد تا بسته های خود را در بالای کتابخانه استاندارد بسازند تا نیازهای خاص خود را برآورده کنند. پایگاه داده رسمی بسته های Go را کاوش کنید.
اگر نیاز به استقرار یک بسته Go شخص ثالث دارید، چه؟ رفتن به کشتی با
من دارم میروم نصب فرمان (
من دارم میروم دریافت می کنم رد می شود). می تواند هر بسته Go شخص ثالث را از اینترنت بگیرد.
برای نمایش نصب خواهیم کرد
یک کبرا–cli بسته بندی دستور Go زیر فایل های لازم را دانلود و نصب می کند و بسته را در سیستم کتابخانه Go یکپارچه می کند:
به نصب github.com/spf13/cobra-cli@latest بروید
من دارم میروم نصب github.com/spf13/یک کبرا–cli@آخر |
باینری از
یک کبرا–cli باید در مکان زیر قرار گیرد:
سایر فایل های بسته باید در مکان زیر قرار گیرند:
ls -l $GOPATH/pkg/mod/github.com/spf13
ls –ل $GOPATH/بسته بندی/مد/github.com/spf13 |
با شروع نسخه Go v1.11، ماژولهای Go نسخه بستهای را که میخواهید وارد کنید تعریف میکنند. این در اینجا به تفصیل توضیح داده شده است: Go Modules GitHub.
مرحله 6 – نام مستعار بسته
در موقعیت های مختلف، ممکن است نام بسته های متناقضی بین بسته های داخلی و بسته های وارداتی پیدا کنید. اینجاست که aliasing می تواند برخورد را حل کند. ساختار نام مستعار به شکل زیر است:
وارد كردن
وارد كردن <نام مستعار> “import_package_name” |
بیایید برنامه Go ساده خود را تغییر دهیم تا شامل آن شود
fmt_alias به عنوان نام مستعار برای بسته
fmt :
بسته اصلی import ( fmt_alias “fmt” “math/rand” ) func main() { for i := 0; من < 10; i++ { fmt_alias.Printf("%d) %dn", i, rand.Intn(25)) } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | بسته بندی اصلی وارد كردن ( fmt_alias “fmt” “ریاضی/رند” ) تابع اصلی() { برای من := 0; من < 10; من++ { fmt_alias.Printf(“%d) %dn”، من، رند.درونی؛ داخلی(25)) } } |
توجه داشته باشید که به جای استفاده از
fmt.Printf() ما از نام مستعار بسته استفاده می کنیم
fmt_alias.Printf() .
با این حال، Go چندان دوستانه با نام مستعار نیست. هنگام استفاده از نام مستعار، برای جلوگیری از تداخل نام در واردات، توصیه میشود که محلیترین واردات یا پروژه خاص را با نام مستعار انتخاب کنید. به عنوان مثال، اگر می خواهید هر دو بسته محلی داشته باشید
رشته های و بسته سیستمی
رشته های سپس شما باید بسته محلی را مستعار کنید، نه بسته سیستمی.
بهترین روش این است که در وهله اول از تداخل نام جلوگیری کنید.
مرحله 7 – قالب بندی را وارد کنید
ما یاد گرفتیم که همه واردات را با استفاده از یک واحد اظهار کنیم
وارد كردن بیانیه. اگر چند واردات داشته باشید چطور؟ مثلا:
واردات (“fmt” “os” “github.com/example/foo” “github.com/example/bar” “math/rand” “github.com/abc/pqr/xyz” )
وارد كردن ( “fmt” “OS” “github.com/example/foo” “github.com/example/bar” “ریاضی/رند” “github.com/abc/pqr/xyz” ) |
قالببندی وارداتی بستهها را به ترتیب خاصی مرتب میکند و سازگاری کد را بهبود میبخشد. از آنجایی که فقط سفارش واردات را مرتب می کند، از انجام خودسرانه نیز جلوگیری می کند. همچنین از شکستن کدهای غیر ضروری و بازبینی کدهای گیج کننده جلوگیری می کند.
اکثر ویرایشگرهای مدرن به طور خودکار فایل های وارد شده را برای شما قالب بندی می کنند. از طرف دیگر، آنها از goimport ها حمایت خواهند کرد. استفاده از این روش معمول در صنعت است
goimports به جای مرتب سازی دستی وارد شده. اضافی،
goimports همچنین تغییرات سبک در کد را منعکس می کند.
اینجا چیه
وارد كردن بلوک ممکن است پس از اعمال به این شکل باشد
goimports :
واردات ( fmt_alias “fmt” “math/rand” “os” “github.com/example/foo” “github.com/example/bar” “github.com/abc/pqr/xyz” )
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | وارد كردن ( fmt_alias “fmt” “ریاضی/رند” “OS” “github.com/example/foo” “github.com/example/bar” “github.com/abc/pqr/xyz” ) |
آیا متوجه الگویی شده اید؟
- ابتدا همه کتابخانههای استاندارد همراه هستند.
- گروه ها با خطوط خالی از هم جدا می شوند که خوانایی کد را بهبود می بخشد.
افکار نهایی
Importing in Go یک ویژگی قدرتمند است که به شما امکان فراخوانی توابعی را می دهد که در Go تعبیه نشده اند. در حالی که کتابخانه استاندارد بسیاری از بسته های همه منظوره را ارائه می دهد، Go از بسته های شخص ثالث نیز پشتیبانی می کند. این راهنما وارد کردن بستههای Go داخلی و شخص ثالث را نشان میدهد.
در این راهنما، ما برنامه های Go خود را با استفاده از مترجم اجرا کردیم. با این حال، میتوانید کدها را در باینریهای مستقل برای عملکرد بهتر کامپایل کنید. در اینجا می توانید درباره کامپایل برنامه های Go اطلاعات بیشتری کسب کنید. اگر می خواهید نحوه استقرار یک برنامه وب Go با Nginx را بیاموزید، این آموزش را بررسی کنید. همچنین می توانید راهنمای ما را بررسی کنید که نشان می دهد چگونه بسته های Go خود را بنویسید.
آیا شما یک توسعه دهنده Go هستید؟ CloudSigma پشتیبانی Go API را برای ادغام یکپارچه با پروژه های شما ارائه می دهد.
کار کامپیوتر مبارک!

درباره آکشی ناگپال
علاقه مندان به تجزیه و تحلیل داده های بزرگ و یادگیری ماشین.