Gopher Academy
🎯نگاهی عمیق به تایپ های گولنگ🎯 🔹Type Aliases 🔹Basic Types 🔹Strings 🔹Pointers 🔹Pointers 🔹Interfaces 🔹Structs 🔹Type Assertions 🔹Reflection 🔹Functions 🔹Channels 🔹Collections 🔹Arrays 🔹Slices 🔹Maps 🔹Zero Values ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌ zero values: ❌
🔹 0 for all integer types,
🔹 0.0 for floating point numbers,
🔹 false for booleans,
🔹 "" for strings,
🔹 nil for interfaces, slices, channels, maps, pointers and functions.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹 0 for all integer types,
🔹 0.0 for floating point numbers,
🔹 false for booleans,
🔹 "" for strings,
🔹 nil for interfaces, slices, channels, maps, pointers and functions.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯ویژگی های شی گرایی در گولنگ 🎯
🔹Struct
🔹Method
🔹Embedding
🔹Encapsulation
🔹Interface
🔹Inheritance
🔹Polymorphism
🔹Conclusion
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹Struct
🔹Method
🔹Embedding
🔹Encapsulation
🔹Interface
🔹Inheritance
🔹Polymorphism
🔹Conclusion
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴آکادمی علیبابا، در سری برنامههای علیبابا تاک، به بیان چالشها و تجربیات علیباباییها میپردازه. این بار، رضا کمالیفرد، از تیم فنی شرکت سفرهای علیبابا، در مورد سیستم ریت لیمیتر و پیادهسازی اون در علیبابا صحبت میکنه.
🔴علیبابا بزرگترین ارائهدهنده خدمات گردشگری در ایران هست و ای پی آی هایی داره که در اونها اطلاعات مربوط به بلیتهای سفر رو نگه میداره. توی این تاک، داستان دوباره ساختن ملوان زبل،ریت لیمیتر علی بابا، که به جنگ باتها و درخواستهای مخربی که به سمت این ای پی آیها میان، رفته و اونها رو از سر راه برداشته، بیان میشه.
https://m.youtube.com/watch?v=y6y7h8nYDj8
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴علیبابا بزرگترین ارائهدهنده خدمات گردشگری در ایران هست و ای پی آی هایی داره که در اونها اطلاعات مربوط به بلیتهای سفر رو نگه میداره. توی این تاک، داستان دوباره ساختن ملوان زبل،ریت لیمیتر علی بابا، که به جنگ باتها و درخواستهای مخربی که به سمت این ای پی آیها میان، رفته و اونها رو از سر راه برداشته، بیان میشه.
https://m.youtube.com/watch?v=y6y7h8nYDj8
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
YouTube
Alibaba Talk: Alibaba Rate-limiter - Reza KamaliFard
آکادمی علیبابا، در سری برنامههای علیبابا تاک، به بیان چالشها و تجربیات علیباباییها میپردازه. این بار، رضا کمالیفرد، از تیم فنی شرکت سفرهای علیبابا...
🔸استخدام Back-end Developer(Go Lang) در شرکت boomerang
🔹تماموقت
🔹ارشد (Senior)
🔗 https://quera.ir/r/G5qHpd
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹تماموقت
🔹ارشد (Senior)
🔗 https://quera.ir/r/G5qHpd
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Clean architecture #نشست دهم در گولنگ
❌محمد صباغ
❌پنجشنبه ۹ بهمن ساعت ۱۹ از
یوتوب:
https://youtu.be/bQepxgcBdTI
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌محمد صباغ
❌پنجشنبه ۹ بهمن ساعت ۱۹ از
یوتوب:
https://youtu.be/bQepxgcBdTI
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Structs❌
ساختار یا Structures برای نشان دادن مجموعه ای از فیلد ها به کار میروند
با استفاده از این دستور می توانید مجموعه ای از فیلد های با تایپ مختلف ایجاد کنید
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
ساختار یا Structures برای نشان دادن مجموعه ای از فیلد ها به کار میروند
با استفاده از این دستور می توانید مجموعه ای از فیلد های با تایپ مختلف ایجاد کنید
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Methods❌
در زبان گو توابع می توانند انواع تابپی ها مختلفی رو بگیرین و بسته به نیاز خروجی متفاوتی رو برامون نتیجه بدن
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در زبان گو توابع می توانند انواع تابپی ها مختلفی رو بگیرین و بسته به نیاز خروجی متفاوتی رو برامون نتیجه بدن
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌د GOPATH چیست؟❌
درواقع GOPATH یه متغیر محیطی و یک environment variable است.
در واقع GOPATH مسیر مشخص workspace ما داخل environment variable است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
درواقع GOPATH یه متغیر محیطی و یک environment variable است.
در واقع GOPATH مسیر مشخص workspace ما داخل environment variable است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌مسیر جاری GOPATH کجا است؟❌
go env
اگر go env را داخل command line وارد کنیم و سپس اینتر بزنیم، environment variable های Go را به ما نشان میدهد و از آنجا میتوانیم مسیر جاری GOPATH را مشاهده کنیم.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
go env
اگر go env را داخل command line وارد کنیم و سپس اینتر بزنیم، environment variable های Go را به ما نشان میدهد و از آنجا میتوانیم مسیر جاری GOPATH را مشاهده کنیم.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌ساختار GOPATH به چه صورت است؟❌
🔹برای نگه داشتن کدهای منبع، دایرکتوری سورس (src) را داریم.
🔹برای نگه داشتن پکیج های آبجکت یا پکیج هایی که اشیاء هستند، دایرکتوری پکیج (pkg) را داریم.(زمانی که کدها را نصب می کنیم، پکیج های اشیاء ( واردات ) بصورت خودکار در دایرکتوری pkg ذخیره می شوند)
🔹برای نگه داشتن کامندهای کامپایل شده و فایل های باینری دایرکتوری باینری (bin) را داریم. (زمانی که کدها را نصب می کنیم، کدها بصورت خودکار در دایرکتوری bin ذخیره می شوند)
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹برای نگه داشتن کدهای منبع، دایرکتوری سورس (src) را داریم.
🔹برای نگه داشتن پکیج های آبجکت یا پکیج هایی که اشیاء هستند، دایرکتوری پکیج (pkg) را داریم.(زمانی که کدها را نصب می کنیم، پکیج های اشیاء ( واردات ) بصورت خودکار در دایرکتوری pkg ذخیره می شوند)
🔹برای نگه داشتن کامندهای کامپایل شده و فایل های باینری دایرکتوری باینری (bin) را داریم. (زمانی که کدها را نصب می کنیم، کدها بصورت خودکار در دایرکتوری bin ذخیره می شوند)
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Embedding❌
تعریف یک استراکت در استراکت دیگر
مانند نمونه فوق
نموه ای ااز این حالت هست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
تعریف یک استراکت در استراکت دیگر
مانند نمونه فوق
نموه ای ااز این حالت هست
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Encapsulation❌
متد ها یا استراکت های که با نام کوچک ایجاد می شوند در همان فایل یا پکیج قابل دسترس هستن در پکبج های دیگر قابل دسترس نیستن
این قابلیت Encapsulation
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
متد ها یا استراکت های که با نام کوچک ایجاد می شوند در همان فایل یا پکیج قابل دسترس هستن در پکبج های دیگر قابل دسترس نیستن
این قابلیت Encapsulation
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌ابزار هایی برای زبان فارسی❌
🔹لینک کتابخانه در گیتهاب👇🏻
🔺github.com/mavihq/persian
🔹طریقه نصب
🔺go get github.com/mavihq/persian
🔹متد ها
🔺.ToPersianDigits
🔹تمامی اعداد در رشته رو به اعداد فارسی تبدیل میکند
🔺persian.ToPersianDigits("123salam456")
=> "۱۲۳salam۴۵۶"
.ToPersianDigitsFromInt
🔹تمامی اعداد در رشته رو به اعداد فارسی تبدیل میکند
🔺persian.ToPersianDigitsFromInt(123)
=> "۱۲۳"
.ToEnglishDigits
🔹تمامی اعداد در رشته رو به اعداد انگلیسی تبدیل میکند
🔺persian.ToEnglishDigits("۱۲۳salam۴۵۶")
=> "123salam456"
.OnlyEnglishNumbers
🔹در متن تمامی حروف را حذف کرده و فقط اعداد انگلیسی میمانند.
🔺persian.OnlyEnglishNumbers("123salam۴۵۶")
=> "123"
.OnlyPersianNumbers
🔹در متن تمامی حروف را حذف کرده و فقط اعداد فارسی میمانند.
🔺persian.OnlyPersianNumbers("123salam۴۵۶")
=> "۴۵۶"
.SwitchToPersianKey
🔹تمامی حروف در رشته رو به معادل فارسی شان تبدیل میکند
🔺persian.SwitchToPersianKey("sghl o,fd ? o,fl llk,k")
=> "سلام خوبی ؟ خوبم ممنون"
.SwitchToEnglishKey
🔹تمامی حروف در رشته رو به معادل انگلیسی شان تبدیل میکند
🔺persian.SwitchToEnglishKey("اثغ صاشفس عح ؟")
=> "hey whats up ?"
.Currency
🔹اعداد در رشته را به صورت نوشتاری پول تبدیل میکند.
🔺persian.Currency("1234567")
=> "۱،۲۳۴،۵۶۷"
.Toman
🔹اعداد در رشته را به صورت نوشتاری پول با پسوند تومان تبدیل میکند.
🔺persian.Toman("1234567")
=> "۱،۲۳۴،۵۶۷ تومان"
.Rial
🔹اعداد در رشته را به صورت نوشتاری پول با پسوند ریال تبدیل میکند.
🔺persian.Rial("1234567")
=> "۱،۲۳۴،۵۶۷ ﷼"
.FixArabic
🔹کاراکتر های عربی در رشته را به معادل فارسی شان تبدیل میکند.
🔺persian.FixArabic("کوروش")
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹لینک کتابخانه در گیتهاب👇🏻
🔺github.com/mavihq/persian
🔹طریقه نصب
🔺go get github.com/mavihq/persian
🔹متد ها
🔺.ToPersianDigits
🔹تمامی اعداد در رشته رو به اعداد فارسی تبدیل میکند
🔺persian.ToPersianDigits("123salam456")
=> "۱۲۳salam۴۵۶"
.ToPersianDigitsFromInt
🔹تمامی اعداد در رشته رو به اعداد فارسی تبدیل میکند
🔺persian.ToPersianDigitsFromInt(123)
=> "۱۲۳"
.ToEnglishDigits
🔹تمامی اعداد در رشته رو به اعداد انگلیسی تبدیل میکند
🔺persian.ToEnglishDigits("۱۲۳salam۴۵۶")
=> "123salam456"
.OnlyEnglishNumbers
🔹در متن تمامی حروف را حذف کرده و فقط اعداد انگلیسی میمانند.
🔺persian.OnlyEnglishNumbers("123salam۴۵۶")
=> "123"
.OnlyPersianNumbers
🔹در متن تمامی حروف را حذف کرده و فقط اعداد فارسی میمانند.
🔺persian.OnlyPersianNumbers("123salam۴۵۶")
=> "۴۵۶"
.SwitchToPersianKey
🔹تمامی حروف در رشته رو به معادل فارسی شان تبدیل میکند
🔺persian.SwitchToPersianKey("sghl o,fd ? o,fl llk,k")
=> "سلام خوبی ؟ خوبم ممنون"
.SwitchToEnglishKey
🔹تمامی حروف در رشته رو به معادل انگلیسی شان تبدیل میکند
🔺persian.SwitchToEnglishKey("اثغ صاشفس عح ؟")
=> "hey whats up ?"
.Currency
🔹اعداد در رشته را به صورت نوشتاری پول تبدیل میکند.
🔺persian.Currency("1234567")
=> "۱،۲۳۴،۵۶۷"
.Toman
🔹اعداد در رشته را به صورت نوشتاری پول با پسوند تومان تبدیل میکند.
🔺persian.Toman("1234567")
=> "۱،۲۳۴،۵۶۷ تومان"
.Rial
🔹اعداد در رشته را به صورت نوشتاری پول با پسوند ریال تبدیل میکند.
🔺persian.Rial("1234567")
=> "۱،۲۳۴،۵۶۷ ﷼"
.FixArabic
🔹کاراکتر های عربی در رشته را به معادل فارسی شان تبدیل میکند.
🔺persian.FixArabic("کوروش")
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌چگونگی استفاد از پکیج ها❌
🔹وقتی که یک اسم برای پکیج انتخاب می کنیم، در ذهنتون باشه که هر جایی که بخواهیم اون رو صدا بزنیم باید نام همون پکیج رو صدا بزنیم که بتونیم توابع اون پکیج رو اجرا کنیم و یا از اون استفاده کنیم.
🔹سعی کنید نام پکیج های شما مختلف باشند. یعنی مشابه هم نباشند. حتی با کتابخانه های استاندارد هم تفاوت داشته باشند که هیچوقت دچار مشکل نشوید
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹وقتی که یک اسم برای پکیج انتخاب می کنیم، در ذهنتون باشه که هر جایی که بخواهیم اون رو صدا بزنیم باید نام همون پکیج رو صدا بزنیم که بتونیم توابع اون پکیج رو اجرا کنیم و یا از اون استفاده کنیم.
🔹سعی کنید نام پکیج های شما مختلف باشند. یعنی مشابه هم نباشند. حتی با کتابخانه های استاندارد هم تفاوت داشته باشند که هیچوقت دچار مشکل نشوید
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌Package main ❌
🔹برای کامپایل کردن کدها ما مجبوریم که این پکیج رو تعریف کنیم و به اون نیاز داریم. داخل package main یک function وجود داره به نام function main که اون هم نیاز هست که 100% تعریف بشه و تا تعریف نشه نمیتونیم کدمون رو کامپایل کنیم.
🔹بنابراین در نظر داشته باشید که کدهای اصلی ما در package main قرار می گیرند و بقیه کدها می تونن یه جور کتابخونه باشن که ایمپورت میشن داخل این پکیج.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹برای کامپایل کردن کدها ما مجبوریم که این پکیج رو تعریف کنیم و به اون نیاز داریم. داخل package main یک function وجود داره به نام function main که اون هم نیاز هست که 100% تعریف بشه و تا تعریف نشه نمیتونیم کدمون رو کامپایل کنیم.
🔹بنابراین در نظر داشته باشید که کدهای اصلی ما در package main قرار می گیرند و بقیه کدها می تونن یه جور کتابخونه باشن که ایمپورت میشن داخل این پکیج.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌اسم ها در زبان go به چه صورت هستند؟❌
🔹در زبان go نیز مانند دیگر زبان ها، اسم ها دارای اهمیت هستند.
🔹در اسامی پکیج ها هیچگاه نباید از علامت هایی مانند (: _ -) استفاده کنیم. و اینکه پکیج شما دارای اسم کوتاه، مختصر و مفیدی باشد از اهمیت بسیار بالایی برخوردار است. (بقول وب سایت گولنگ، اسمی که برای پکیج استفاده می کنید تحریک آمیز باشد)
🔹اسمی که برای پکیج استفاده می کنیم سعی کنیم lower case و single-word باشد. یعنی اینکه یک لغت یا یک اسم داشته باشد و با حروف کوچک نوشته شود.
🔹همچنین سعی کنید function name هم طولانی نباشد. طولانی نوشتن اسم ها همیشه باعث سردرگمی میشود.
🔹پس به خاطر داشته باشید که طولانی بودن اسامی، یک نکته خوب نیست و همه چیز رو بیان نمیکنه و همینطور حرف اول آن ها با حروف بزرگ شروع شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹در زبان go نیز مانند دیگر زبان ها، اسم ها دارای اهمیت هستند.
🔹در اسامی پکیج ها هیچگاه نباید از علامت هایی مانند (: _ -) استفاده کنیم. و اینکه پکیج شما دارای اسم کوتاه، مختصر و مفیدی باشد از اهمیت بسیار بالایی برخوردار است. (بقول وب سایت گولنگ، اسمی که برای پکیج استفاده می کنید تحریک آمیز باشد)
🔹اسمی که برای پکیج استفاده می کنیم سعی کنیم lower case و single-word باشد. یعنی اینکه یک لغت یا یک اسم داشته باشد و با حروف کوچک نوشته شود.
🔹همچنین سعی کنید function name هم طولانی نباشد. طولانی نوشتن اسم ها همیشه باعث سردرگمی میشود.
🔹پس به خاطر داشته باشید که طولانی بودن اسامی، یک نکته خوب نیست و همه چیز رو بیان نمیکنه و همینطور حرف اول آن ها با حروف بزرگ شروع شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌استخدام Golang Developer
🔴 https://jobinja.ir/617746
🔴 https://jobinja.ir/621696
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴 https://jobinja.ir/617746
🔴 https://jobinja.ir/621696
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy