🎯 درود دوستان بنده قصد دارم توی ریپوی زیر از تجربیاتی که دیگران توی مصاحبه گولنگ داشتن رو جمع آوری کنم.🎯
🎯 پس دوستانی که مصاحبه گولنگ داشتن برامون توی ریپوی زیر pull request بزنن تا به اشتراک بزاریم برای سایر افراد ی که وارد این حوزه میشن🎯
🙏🏿❤️🙏🏿
🔗 https://github.com/mrbardia72/Go-Interview-Questions-And-Answers
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯 پس دوستانی که مصاحبه گولنگ داشتن برامون توی ریپوی زیر pull request بزنن تا به اشتراک بزاریم برای سایر افراد ی که وارد این حوزه میشن🎯
🙏🏿❤️🙏🏿
🔗 https://github.com/mrbardia72/Go-Interview-Questions-And-Answers
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
اموزش در مورد Regular Expressions بزاریم؟
🎯آموزش Regular Expressions در گولنگ🎯
✅Understanding Regular Expressions
🔴 https://t.me/gopher_academy/593
✅Dealing With Special Characters
🔴 https://t.me/gopher_academy/599
✅ Using Boundaries
🔴 https://t.me/gopher_academy/606
✅Using Classes
🔴 https://t.me/gopher_academy/608
🔴 https://t.me/gopher_academy/609
🔴 https://t.me/gopher_academy/610
✅Using Alternatives
🔴 https://t.me/gopher_academy/611
✅Compiling Your Regex
🔴 https://t.me/gopher_academy/612
✅Finding
🔴 https://t.me/gopher_academy/617
✅Replacing
🔴 https://t.me/gopher_academy/618
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅Understanding Regular Expressions
🔴 https://t.me/gopher_academy/593
✅Dealing With Special Characters
🔴 https://t.me/gopher_academy/599
✅ Using Boundaries
🔴 https://t.me/gopher_academy/606
✅Using Classes
🔴 https://t.me/gopher_academy/608
🔴 https://t.me/gopher_academy/609
🔴 https://t.me/gopher_academy/610
✅Using Alternatives
🔴 https://t.me/gopher_academy/611
✅Compiling Your Regex
🔴 https://t.me/gopher_academy/612
✅Finding
🔴 https://t.me/gopher_academy/617
✅Replacing
🔴 https://t.me/gopher_academy/618
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
❌مقدمه❌
✅درواقع Regex مخفف Regular Expression بوده و به معنی عبارات با قاعده است. عبارات با قاعده برای رشته های متنی مورد استفاده قرار میگیرد؛ جستجو در رشته های متنی، جابجایی در رشته های متنی و واکشی عبارتی خاص در یک رشته متنی.
عبارات با قاعده به شما کمک میکنه متن مورد نظر خودتون رو با الگوی دلخواه خودتون داخل یک رشته متنی مثل ورودی های کاربر جستجو کنید.
✅به عنوان مثال یک اینپوت شماره تلفن دارید و میخواهید کاربر شماره تلفن خود را داخل این اینپوت وارد کند. ممکن است کاربری شماره تلفن خود را با 09 وارد کند، ممکن است کاربر دیگری شماره تلفن خود را با 98+ وارد کند یا کاربری با 9 وارد کند.
✅برای همچین مواقعی حتی نمیتونین از length استفاده کنید؛ چون اگر با 9 شروع کند طول شماره 10 کاراکتر میشود، اگر با 09 شروع کند طول شماره 11 کاراکتر شده و اگر با 98+ شروع کند طول شماره 12 کاراکتر می شود! آیا روشی سراغ دارید که در همچین مواقعی درست یا غلط بودن شماره تلفن کاربر رو تشخیص دهد؟ اینجاست که عبارات با قاعده به شما کمک می کند.
✅ممکن است در اولین بار که با RegEx روبرو بشوید سینتکس آن برای شما پیچیده باشد. اما وقتی شروع به یادگیری آن می کنید متوجه می شوید که چقدر راحت و آسان و جذاب است.
✅شما به کمک عبارت با قاعده می توانید یک پترن(الگو) تعریف کنید و ورودی های کاربر را با پترن نوشته شده بررسی کنید. اگر ورودی کاربر با پترن شما مطابقت داشته باشد روند اصلی برنامه ادامه پیدا کرده و در صورت مغایرت ورودی کاربر با پترن نوشته شده، پیغام خطا به کاربر نمایش داده شود.
✅این از کل مفهوم و کاربرد regex یا همان عبارات با قاعده.
✅درواقع regex در اکثر زبان های برنامه نویسی مورد استفاده قرار میگیرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅درواقع Regex مخفف Regular Expression بوده و به معنی عبارات با قاعده است. عبارات با قاعده برای رشته های متنی مورد استفاده قرار میگیرد؛ جستجو در رشته های متنی، جابجایی در رشته های متنی و واکشی عبارتی خاص در یک رشته متنی.
عبارات با قاعده به شما کمک میکنه متن مورد نظر خودتون رو با الگوی دلخواه خودتون داخل یک رشته متنی مثل ورودی های کاربر جستجو کنید.
✅به عنوان مثال یک اینپوت شماره تلفن دارید و میخواهید کاربر شماره تلفن خود را داخل این اینپوت وارد کند. ممکن است کاربری شماره تلفن خود را با 09 وارد کند، ممکن است کاربر دیگری شماره تلفن خود را با 98+ وارد کند یا کاربری با 9 وارد کند.
✅برای همچین مواقعی حتی نمیتونین از length استفاده کنید؛ چون اگر با 9 شروع کند طول شماره 10 کاراکتر میشود، اگر با 09 شروع کند طول شماره 11 کاراکتر شده و اگر با 98+ شروع کند طول شماره 12 کاراکتر می شود! آیا روشی سراغ دارید که در همچین مواقعی درست یا غلط بودن شماره تلفن کاربر رو تشخیص دهد؟ اینجاست که عبارات با قاعده به شما کمک می کند.
✅ممکن است در اولین بار که با RegEx روبرو بشوید سینتکس آن برای شما پیچیده باشد. اما وقتی شروع به یادگیری آن می کنید متوجه می شوید که چقدر راحت و آسان و جذاب است.
✅شما به کمک عبارت با قاعده می توانید یک پترن(الگو) تعریف کنید و ورودی های کاربر را با پترن نوشته شده بررسی کنید. اگر ورودی کاربر با پترن شما مطابقت داشته باشد روند اصلی برنامه ادامه پیدا کرده و در صورت مغایرت ورودی کاربر با پترن نوشته شده، پیغام خطا به کاربر نمایش داده شود.
✅این از کل مفهوم و کاربرد regex یا همان عبارات با قاعده.
✅درواقع regex در اکثر زبان های برنامه نویسی مورد استفاده قرار میگیرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
❌Understanding Regular Expressions❌
✅توی این مثال برای روشن شدن موضوع ما اومدیم صحت دورستی ایمیل ها رو چک کردیم
✅برای استفاده از ریجیکس در گو باید از کتابخونه regexp استفاده کنیم
✅توی این مثال ما یه الگو تعریف کردیم به صورت زیر
pattern :=
✅این الگو یعنی ما دتبال ابمبل هستیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅توی این مثال برای روشن شدن موضوع ما اومدیم صحت دورستی ایمیل ها رو چک کردیم
✅برای استفاده از ریجیکس در گو باید از کتابخونه regexp استفاده کنیم
✅توی این مثال ما یه الگو تعریف کردیم به صورت زیر
pattern :=
^\w+@\w+\.\w+$
✅این الگو میگه در گام اول هرکارکتری مجاز هست و بعدش حتما باید @ باشه و بعدش دوباره باید هرکارکتری باشه و بعد اون دات و بعدش دوباره هرکارکتری✅این الگو یعنی ما دتبال ابمبل هستیم
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌اگه دنبال یه سری نمونه sample هستید در مورد Regular Expressions به ریپوی زیر برید❌
https://github.com/StefanSchroeder/Golang-Regex-Tutorial
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://github.com/StefanSchroeder/Golang-Regex-Tutorial
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌ یه برگه تقلب خوب Golang Regex ❌
https://gist.github.com/harrietty/d737a350827e100712c5b62168358c88
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
https://gist.github.com/harrietty/d737a350827e100712c5b62168358c88
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Regarding function declaration, the following syntax error is ()
Anonymous Quiz
13%
func f(a, b int) (value int, err error)
44%
func f(a int, b int) (value int, err error) )
38%
func f(a, b int) (value int, error)
6%
func f(a int, b int) (int, int, error)
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
❌Dealing With Special Characters❌
✅نویسه های زیر در عبارات منظم معانی خاصی دارند:. + *؟ () | [] {} ^ $ \. ما قبلاً بسیاری از آنها را در مثال ایمیل مشاهده کرده ایم.
✅الگوی regex \؟ شامل یک بک اسلش است که باید با یک بک اسلش دیگر از آن خارج شود ، زیرا به عنوان یک رشته Go معمولی نمایش داده می شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅نویسه های زیر در عبارات منظم معانی خاصی دارند:. + *؟ () | [] {} ^ $ \. ما قبلاً بسیاری از آنها را در مثال ایمیل مشاهده کرده ایم.
✅الگوی regex \؟ شامل یک بک اسلش است که باید با یک بک اسلش دیگر از آن خارج شود ، زیرا به عنوان یک رشته Go معمولی نمایش داده می شود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯آیا Go سریعتر از Java است؟🎯
👇🏻👇🏻👇🏻👇🏻
✅ https://roocket.ir/articles/is-go-faster-than-java-the-wrong-question-to-ask
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👇🏻👇🏻👇🏻👇🏻
✅ https://roocket.ir/articles/is-go-faster-than-java-the-wrong-question-to-ask
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯 شرکت های که از گولنگ استفاده کردن🎯
❌در ایران
✅Idpay
🔴bank gateways and a stable billing service in order to connect payments.
✅IranBooking
🔴Online booking system for hotels in Iran
✅QuizOfKings
🔴Online trivia game among the most popular mobile game in iran
✅ManaGroup
🔴github Iranian Payment And Traveling Solution 💸✅🚀
✅Emji -
🔴Emji is a new refined social networking platform aimed at simplicity and connectivity
✅Clickyab -
🔴Clickyab is diffrent online advertising & digital media agency
✅Sazito -
🔴Sazito is multi-functional tools to build and manage your online store.
✅AlAlam --
🔴 AlAlam news network TV channel
✅Aparat --
🔴Most popular video sharing platform in Iran
✅Asan Pardakht --
🔴 Pay Smarter. Pay Simpler. Pay Anywhere!
✅SabzCity -
🔴 github
✅Bahamta -
🔴Fintech company.
✅5th dimension -
🔴Advertising Agency.
✅Telmaperfume -
🔴Promotional Gifts.
✅Giftsbox -
🔴Promotional Mothers Day Gifts.
✅Snapp -
🔴Snapp is a web and mobile ride-hailing platform in Iran
✅Parsaspace -
🔴Parsaspace is an iranian storage as a service
✅Cafe Bazaar -
🔴Iranian Android marketplace
✅Alfa Movie -
🔴 Best download center platform in Iran.
✅Alibaba Travels Co. -
🔴(Github) - Iranian online travel agency
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
❌در ایران
✅Idpay
🔴bank gateways and a stable billing service in order to connect payments.
✅IranBooking
🔴Online booking system for hotels in Iran
✅QuizOfKings
🔴Online trivia game among the most popular mobile game in iran
✅ManaGroup
🔴github Iranian Payment And Traveling Solution 💸✅🚀
✅Emji -
🔴Emji is a new refined social networking platform aimed at simplicity and connectivity
✅Clickyab -
🔴Clickyab is diffrent online advertising & digital media agency
✅Sazito -
🔴Sazito is multi-functional tools to build and manage your online store.
✅AlAlam --
🔴 AlAlam news network TV channel
✅Aparat --
🔴Most popular video sharing platform in Iran
✅Asan Pardakht --
🔴 Pay Smarter. Pay Simpler. Pay Anywhere!
✅SabzCity -
🔴 github
✅Bahamta -
🔴Fintech company.
✅5th dimension -
🔴Advertising Agency.
✅Telmaperfume -
🔴Promotional Gifts.
✅Giftsbox -
🔴Promotional Mothers Day Gifts.
✅Snapp -
🔴Snapp is a web and mobile ride-hailing platform in Iran
✅Parsaspace -
🔴Parsaspace is an iranian storage as a service
✅Cafe Bazaar -
🔴Iranian Android marketplace
✅Alfa Movie -
🔴 Best download center platform in Iran.
✅Alibaba Travels Co. -
🔴(Github) - Iranian online travel agency
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
ما معمولا انتخاب و فراخوانی یک متد رو به صورت همزمان انجام میدیم! در صورتی که میتونیم یک متد رو انتخاب کنیم و بعدا اجرا کنیم! به مثال بالا دقت کنید.
این تکنیک موقعی به کار میاد که میخوایم یک متد رو به عنوان پارامتر به درون یک فانکشن یا متد دیگر پاس بدیم تا در زمان مناسب اجرا بشه.
🔰 @gopher_academy
این تکنیک موقعی به کار میاد که میخوایم یک متد رو به عنوان پارامتر به درون یک فانکشن یا متد دیگر پاس بدیم تا در زمان مناسب اجرا بشه.
🔰 @gopher_academy
🔴ent. An entity framework for Go🔴
✅درواقع ent یک فرم ورک ساده و در عین حال قدرتمند برای Go است ، ساخت و نگهداری برنامه های کاربردی با مدل داده های بزرگ را آسان می کند با اصول زیر را کار با این فرم ورک را آسان می کند:
🔹Easily model database schema as a graph structure.
🔹Define schema as a programmatic Go code.
🔹Static typing based on code generation.
🔹Database queries and graph traversals are easy to write.
🔹Simple to extend and customize using Go templates.
🔻 https://entgo.io/
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅درواقع ent یک فرم ورک ساده و در عین حال قدرتمند برای Go است ، ساخت و نگهداری برنامه های کاربردی با مدل داده های بزرگ را آسان می کند با اصول زیر را کار با این فرم ورک را آسان می کند:
🔹Easily model database schema as a graph structure.
🔹Define schema as a programmatic Go code.
🔹Static typing based on code generation.
🔹Database queries and graph traversals are easy to write.
🔹Simple to extend and customize using Go templates.
🔻 https://entgo.io/
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯چه نوع دیتایی رو میشه باهم مقایسه کرد؟🎯
یا بهتره بگیرم در چه مواقعی میشه از عملگر == (مساوی بودن) یا =! (نامساوی بودن) استفاده کرد؟
۱- داده های basic یا پایه قابل مقایسه هستن. این داده ها شامل نوع های int , string , complex , boolean, float میشن و نوع pointer (اشاره گر)
۲- نوع های map , slice و function اصلا قابل مقایسه نیستن
۳- در مورد interface ها قضیه به چه صورته؟ وقتی دوتا متغیر از نوع interface ها رو باهم مقایسه میکنیم در صورتی که هردو nil باشن یا نوع و مقدار دیتایی که داخل اون متغیر هست باهم یکسان باشه , اون دوتا متغیر یکسان هستن. اما اگه مقدار دوتا متغیر باهم قابل مقایسه نباشه با panic مواجهه خواهیم شد. (مثلا مقدار از نوع slice باشه)
نکته: نوع های داده ای رو که بشه باهم مقایسه کرد میتونیم به عنوان key یا index توی map ها استفاده کنیم! اما نوع های داده ای که قابل مقایسه نیستن رو نمیشه به هیچ وجهه درون map ها به عنوان index استفاده کرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
یا بهتره بگیرم در چه مواقعی میشه از عملگر == (مساوی بودن) یا =! (نامساوی بودن) استفاده کرد؟
۱- داده های basic یا پایه قابل مقایسه هستن. این داده ها شامل نوع های int , string , complex , boolean, float میشن و نوع pointer (اشاره گر)
۲- نوع های map , slice و function اصلا قابل مقایسه نیستن
۳- در مورد interface ها قضیه به چه صورته؟ وقتی دوتا متغیر از نوع interface ها رو باهم مقایسه میکنیم در صورتی که هردو nil باشن یا نوع و مقدار دیتایی که داخل اون متغیر هست باهم یکسان باشه , اون دوتا متغیر یکسان هستن. اما اگه مقدار دوتا متغیر باهم قابل مقایسه نباشه با panic مواجهه خواهیم شد. (مثلا مقدار از نوع slice باشه)
نکته: نوع های داده ای رو که بشه باهم مقایسه کرد میتونیم به عنوان key یا index توی map ها استفاده کنیم! اما نوع های داده ای که قابل مقایسه نیستن رو نمیشه به هیچ وجهه درون map ها به عنوان index استفاده کرد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔴Visualizing gRPC Language Stacks🔴
✅در gRPC-Go ، به دلیل عدم پشتیبانی از بسیاری از تنظیمات ، پشته بسیار ساده تر است.
✅در اینجا یک نمای کلی از سطح بالای پشته Go وجود دارد:
✅ساختار در اینجا کمی متفاوت است. از آنجا که فقط یک زبان وجود دارد ، جریان از بالای پشته به پایین خطی تر است. ب
✅درواقع ، gRPC Go می تواند از پیاده سازی HTTP / 2 یا بسته Go net / http استفاده کند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅در gRPC-Go ، به دلیل عدم پشتیبانی از بسیاری از تنظیمات ، پشته بسیار ساده تر است.
✅در اینجا یک نمای کلی از سطح بالای پشته Go وجود دارد:
✅ساختار در اینجا کمی متفاوت است. از آنجا که فقط یک زبان وجود دارد ، جریان از بالای پشته به پایین خطی تر است. ب
✅درواقع ، gRPC Go می تواند از پیاده سازی HTTP / 2 یا بسته Go net / http استفاده کند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯آموزش Regular Expressions در گولنگ🎯 ✅Understanding Regular Expressions 🔴 https://t.me/gopher_academy/593 ✅Dealing With Special Characters 🔴 https://t.me/gopher_academy/599 ✅ Using Boundaries 🔴 https://t.me/gopher_academy/606 ✅Using Classes 🔴 https:/…
🔴Using Boundaries🔴
✅خط ۵
پیدا کردن کلمه father در رشته
✅خط ۸
انتهای رشته کلمه father باشد
✅خط ۱۱
شروع رشته کلمه Hello باشد
✅خط ۱۳
پیدا کردن کلمه kill در رشته
✅خط ۱۶
جست و جوی بخشی از جمله killed در رشته
✅خط ۱۹
ادامه کلمه kill نباید چیزی باشد
✅خط ۲۲
قبل و بعد kill نباید چیزی باشد
✅خط ۲۵
قبل و بعد killed نباید چیزی باشد
✅خط ۲۸
قبل Montoya چیزی نباید باشد اما بعدش باید یه ویرگول باشد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅خط ۵
پیدا کردن کلمه father در رشته
✅خط ۸
انتهای رشته کلمه father باشد
✅خط ۱۱
شروع رشته کلمه Hello باشد
✅خط ۱۳
پیدا کردن کلمه kill در رشته
✅خط ۱۶
جست و جوی بخشی از جمله killed در رشته
✅خط ۱۹
ادامه کلمه kill نباید چیزی باشد
✅خط ۲۲
قبل و بعد kill نباید چیزی باشد
✅خط ۲۵
قبل و بعد killed نباید چیزی باشد
✅خط ۲۸
قبل Montoya چیزی نباید باشد اما بعدش باید یه ویرگول باشد
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
👀1