آموزش Golang: گولنگ را با مثال بیاموزید
آموزش Golang: گولنگ را با مثال بیاموزید
Google زبان Go را برای رسیدگی بهتر به مسائل ارائه شده توسط برنامه نویسی در مقیاس بزرگ توسعه داد.
Golang به یکی از پرطرفدارترین زبان ها در جامعه توسعه دهندگان تبدیل شده است. Go بهترین های هر دو دنیا را با ایجاد تعادل بین زبان های پویا و کامپایل شده ایستا فراهم می کند. خواندن کد آسان است، مشخصات کوتاه است، و همچنان شامل یک وب سرور داخلی است! در طول این آموزش Golang، نه تنها دلایلی را که Go را به یک زبان منبع باز فوق العاده تبدیل می کند، پوشش خواهیم داد، بلکه اکثر مفاهیم آن را نیز بررسی خواهیم کرد.
در زیر موضوعاتی وجود دارد که در طول این آموزش Golang پوشش خواهیم داد:
چرا Golang یاد بگیریم؟
چه چیزی Golang را خاص می کند؟
سلام دنیا: اولین برنامه Golang
متغیرها و ثابت ها – Variables and Constants
انواع داده ها
Operators
اشاره گرها – Pointers
Printf
حلقه ها – Loops
تصمیم گیری – Decision-Making
آرایه ها – Arrays
Maps
Functions
Recursion
Defer, Recover, Panic
Structures
Interfaces
وب سرور ساده با استفاده از Go
قبل از اینکه هر زبانی را یاد بگیرید، همیشه باید بدانید که چرا آن زبان را یاد می گیرید. هر زبانی هدف خاصی را دنبال می کند و همین امر در مورد Golang نیز صدق می کند. پس چرا باید کسی گولنگ را یاد بگیرد؟ خوب، Golang توسط Google ساخته شد تا به حل مشکلات توسعهدهندگان در Google کمک کند، جایی که برنامههای بزرگ زیادی برای نرمافزار سرور ساخته شدهاند که روی خوشههای عظیم اجرا میشوند. قبل از Go، گوگل از زبانهایی مانند C++ و Java برای حل مشکلات استفاده میکرد، اما این زبانها واقعاً سهولت ساخت را نداشتند که برای مشکلاتی در این مقیاس لازم بود. با در نظر گرفتن این موارد، چند سال پیش Ken Thompson و Robert به فکر ساختن زبان جدیدی افتادند که برای این نوع مشکلات خوب باشد، و از این رو Golang متولد شد. اساساً، اگر در حال تلاش برای حل مشکلی با مقیاس بسیار زیاد هستید یا فقط به کد کارآمد و مقیاسپذیر نیاز دارید، Go باید زبان «Go-to» شما باشد!
چه چیزی Golang را خاص می کند؟
زبان های موجود تا سال های اخیر برای برنامه نویسی در مقیاس بزرگ به اندازه کافی خوب بوده اند، اما در دهه گذشته تغییرات بزرگی در محیط محاسباتی ایجاد شده است. این تغییرات شامل بسیاری از شبکهها و محاسبات خوشهای زیادی میشود – زبان هایی که تا به حال برای پیاده سازی سرویس ها استفاده می شدند حداقل 10 تا 20 سال قدمت دارند، بنابراین ویژگی های زیادی از یک محیط محاسباتی مدرن وجود دارد که این زبان ها مستقیماً به آنها نمی پردازند. بنابراین، داشتن یک زبان مدرن که در محیط محاسباتی مدرن واقعاً خوب کار می کند، در واقع بسیار مهم است. شما همچنین می خواهید کارآمد باشد، زیرا قرار است آن را روی صدها یا شاید حتی هزاران ماشین اجرا کنید. شما نمی خواهید منابع را با داشتن یک مفسر ناکارآمد یا برخی از مشکلاتی که عموماً با پیاده سازی ماشین مجازی پیش می آید، هدر دهید.
Golang تمام این جعبه ها را علامت گذاری می کند، و از این رو شهرت بسیار شایسته ای را در جوامع توسعه دهندگان به دست آورده است.
Hello World: First Golang Program
بیایید خط به خط کد را مرور کنیم. خط اول یک اعلامیه بسته است. هر برنامه Go باید به یک بسته package تعلق داشته باشد و این برنامه خاص به بسته package “اصلی” تعلق دارد. در مرحله بعد، ما “fmt” یا کتابخانه قالب را وارد می کنیم که مجموعه گسترده ای از توابع را در اختیار توسعه دهنده قرار می دهد که امکان قالب بندی خروجی را فراهم می کند. سپس تابع main را ایجاد می کنیم که اولین تابعی است که هنگام اجرای برنامه Go فراخوانی می شود. در تابع اصلی، ما به سادگی تابع ‘Println’ را برای چاپ عبارت خود فراخوانی می کنیم.
متغیرها و ثابت ها – Variables and Constants
متغیر دقیقا چیست؟ یک متغیر چیزی نیست جز نامی که به یک فضای ذخیره سازی داده شده است که برنامه ها می توانند آن را دستکاری کنند. هر متغیر در Go نوع خاصی دارد که اندازه و چیدمان حافظه متغیر، محدوده مقادیر قابل ذخیره در آن حافظه و مجموعه عملیاتی را که می توان روی متغیر اعمال کرد را تعیین می کند. در مرحله بعد، ثابت ها به مقادیر ثابتی اشاره می کنند که ممکن است برنامه در طول اجرای خود تغییر ندهد. به این مقادیر ثابت literals نیز گفته می شود. ثابت ها می توانند از هر یک از انواع داده های اصلی مانند یک ثابت عدد صحیح، یک ثابت شناور، یک ثابت کاراکتر یا یک رشته واقعی باشند. ثابت های شمارش نیز وجود دارد. ثابت ها دقیقاً مانند متغیرهای معمولی رفتار می شوند، با این تفاوت که مقادیر آنها پس از تعریف قابل تغییر نیستند.
Data Types
Operators
Golang دارای سه نوع عملگر کلی است که در هر زبان برنامه نویسی اصلی رایج است.
Pointers
اکنون زمان آن است که ببینیم نشانگرها در Go چگونه کار می کنند. یادگیری اشاره گرها در Go آسان و سرگرم کننده است. برخی از کارهای برنامه نویسی Go با اشاره گرها راحت تر انجام می شوند و کارهای دیگر، مانند فراخوانی با مرجع، بدون استفاده از اشاره گر قابل انجام نیستند. بنابراین یادگیری اشاره گرها برای تبدیل شدن به یک برنامه نویس Go عالی ضروری است. همانطور که می دانید، هر متغیر یک مکان حافظه است و هر مکان حافظه دارای آدرسی است که می توان با استفاده از علامت (&) که نشان دهنده یک آدرس در حافظه است به آن دسترسی پیدا کرد.
Printf
Printf برای چاپ فرمت خروجی های ما در Golang استفاده می شود. این بخشی از کتابخانه فرمت (fmt) است. در زیر جدولی وجود دارد که کاربردهای قابل توجه تابع Printf را فهرست می کند.
خوب، وقت آن است که به حلقه ها برویم.
Loops
اگر در برنامه نویسی تازه کار هستید، حلقه یک مکانیسم تکراری اساسی در علوم کامپیوتر است و بیشتر زمانی استفاده می شود که نیاز به اجرای یک الگوی تکراری در برنامه نویسی دارید. اکنون در اکثر زبان های برنامه نویسی، سه نوع حلقه وجود دارد، به نام های for، while (exit controlled) و do-while (entry controlled) اما Golang تنها یک نوع حلقه دارد که حلقه “for” است. سینتکس go اجازه می دهد تا حلقه های while با سینتکس حلقه for پیاده سازی شوند.
Decision-Making
تصمیم گیری بخش مهمی از برنامه نویسی است. در Golang، میتوانیم تصمیمگیری را با استفاده از کلیدواژههای ‘if-else’ و «switch» اجرا کنیم. بیایید ببینیم که Golang چگونه تصمیمگیری را با این قطعه کد زیر پیادهسازی میکند:
Arrays
آرایه یک ساختار داده در برنامه نویسی است که برای کانتینری کردن داده هایی از همان نوع استفاده می شود. به عنوان مثال، اگر بخواهید نام دانش آموز یک کلاس خاص را ذخیره کنید، از یک آرایه رشته ای برای ذخیره همه آنها استفاده می کنید. کد زیر نحوه پیاده سازی آرایه ها در Golang را نشان می دهد.
Maps
علاوه بر آرایه ها، ما همچنین ساختار داده دیگری به نام “Maps” داریم که کلیدهای منحصر به فرد را به مقادیر نگاشت می کند. کلید شیئی است که از آن برای بازیابی مقداری در تاریخ بعدی استفاده می کنید. با توجه به یک کلید و یک مقدار، می توانید مقدار را در یک شی Map ذخیره کنید. پس از ذخیره مقدار، می توانید آن را با استفاده از کلید آن بازیابی کنید.
در مرحله بعد، بیایید به توابع برویم.
Functions
تابع مجموعه ای از دستورات است که با هم یک کار را انجام می دهند. هر برنامه Go حداقل یک تابع دارد که main() است. می توانید کد خود را به توابع جداگانه تقسیم کنید. نحوه تقسیم کد خود بین توابع مختلف به شما بستگی دارد، اما منطقاً تقسیم بندی باید به گونه ای باشد که هر تابع وظیفه خاصی را انجام دهد. یک اعلان تابع به کامپایلر در مورد نام تابع، نوع بازگشتی و پارامترها می گوید.
Recursion
بازگشت فرآیند تکرار موارد به روشی مشابه است. همین مفهوم در مورد زبان های برنامه نویسی نیز صدق می کند. اگر برنامه ای اجازه فراخوانی تابعی را در داخل همان تابع بدهد، آن را فراخوانی «عملکرد بازگشتی» می نامند. GoLang از recursion پشتیبانی می کند، یعنی به یک تابع اجازه می دهد تا خود را فراخوانی کند. اما در حین استفاده از بازگشت، برنامه نویسان باید مراقب باشند که یک شرط خروج از تابع را تعریف کنند، در غیر این صورت، تبدیل به یک حلقه بی نهایت خواهد شد.
Defer, Panic, and Recover
Defer دستور اجرای یک تابع را تا بازگشت تابع اطراف به تعویق می اندازد. آنها معمولاً برای اجرای دستورات پایانی ضروری استفاده می شوند – به عنوان مثال، بستن یک فایل پس از اتمام کار با آن. تعویق چندگانه به پشته فشار داده می شود و به ترتیب Last In First Out (LIFO) اجرا می شود. Defer معمولاً برای پاکسازی منابعی مانند فایل، اتصال پایگاه داده و غیره استفاده می شود.
Panic شبیه به پرتاب یک استثنا مانند زبان های دیگر است. به طور کلی هنگامی که یک پانیک فراخوانی می شود، جریان اجرای عادی بلافاصله متوقف می شود، اما توابع معوق به طور معمول اجرا می شوند. این یک عملکرد داخلی در Golang است.
Recover یکی دیگر از عملکردهای داخلی Go است. این کمک می کند تا پس از Panic، جریان عادی اجرا را به دست آورید. به طور کلی، با عبارت defer برای بازیابی Panic در goroutine استفاده می شود.
Structure
Go شما اجازه می دهد متغیرهایی را تعریف کنید که می توانند چندین مورد داده از یک نوع را در خود جای دهند. ساختار یکی دیگر از انواع داده های تعریف شده توسط کاربر است که در برنامه نویسی Go موجود است، که به شما امکان می دهد اقلام داده از انواع مختلف را ترکیب کنید. از ساختارها برای نمایش یک رکورد استفاده می شود. فرض کنید می خواهید کتاب های موجود در یک کتابخانه را پیگیری کنید. ممکن است بخواهید ویژگی های زیر هر کتاب را دنبال کنید:
- Title
- Author
- Subject
- Book ID
در چنین سناریویی، ساختارها بسیار مفید هستند. برای تعریف ساختار، باید از دستور type و struct استفاده کنید. دستور struct یک نوع داده جدید را با چندین عضو برای برنامه شما تعریف می کند. دستور type یک نام را با type که در مورد ما یک ساختار است پیوند می دهد.
Interface
برنامه نویسی Go نوع داده دیگری به نام interfaces را ارائه می دهد که مجموعه ای از method signatures را نشان می دهد. نوع داده struct این واسط ها را پیاده سازی می کند تا تعاریف متد برای method signatures رابط ها داشته باشد.
وب سرور ساده با استفاده از Go
Go همچنین توانایی راه اندازی یک وب سرور ساده را در عرض چند ثانیه به ما می دهد. این نشان می دهد که کتابخانه های Go چقدر قوی و قدرتمند هستند.
برای این پست وبلاگ آموزشی Golang تمام شد. امیدوارم شما بچه ها از خواندن آن لذت برده باشید و به اندازه کافی با اعتماد به نفس کار کنید تا اصول اولیه Golang را به تنهایی تمرین کنید.
منبع: https://dzone.com/articles/golang-tutorial-learn-golang-by-examples
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.