🥳 Go 1.16 Release Candidate 1 is released!
📈 Run it in dev! Run it in prod! File bugs! https://t.co/rE2eWdtehW
🗣 Announcement: https://t.co/KhM3boDDg0
📦 Download: https://t.co/pBTcUrfO1R
#golang https://t.co/KlpF4NCXdB
📈 Run it in dev! Run it in prod! File bugs! https://t.co/rE2eWdtehW
🗣 Announcement: https://t.co/KhM3boDDg0
📦 Download: https://t.co/pBTcUrfO1R
#golang https://t.co/KlpF4NCXdB
GitHub
GitHub is where people build software. More than 56 million people use GitHub to discover, fork, and contribute to over 100 million projects.
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Inheritance❌
در شیئگرایی مواقعی پیش میآید که آبجکتها برخی خصوصیاتشان مشابه یکدیگر است اما در عین حال یک سری تفاوتها هم با همدیگر دارند و اینجا است که به منظور جلوگیری از دوبارهکاری و نوشتن کدهای تکراری، میتوانیم از مفهومی تحت عنوان Inheritance به معنای «وراثت» بهره بگیریم. به کلام سادهتر، میتوان سازوکاری اندیشید تا یک کلاس برخی خصوصیاتش را از کلاس دیگری به ارث ببرد اما در عین حال ویژگیهای خاص خود را هم داشته باشد که در چنین فضایی، تا حد ممکن از دوبارهکاری جلوگیری به عمل خواهد آمد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
در شیئگرایی مواقعی پیش میآید که آبجکتها برخی خصوصیاتشان مشابه یکدیگر است اما در عین حال یک سری تفاوتها هم با همدیگر دارند و اینجا است که به منظور جلوگیری از دوبارهکاری و نوشتن کدهای تکراری، میتوانیم از مفهومی تحت عنوان Inheritance به معنای «وراثت» بهره بگیریم. به کلام سادهتر، میتوان سازوکاری اندیشید تا یک کلاس برخی خصوصیاتش را از کلاس دیگری به ارث ببرد اما در عین حال ویژگیهای خاص خود را هم داشته باشد که در چنین فضایی، تا حد ممکن از دوبارهکاری جلوگیری به عمل خواهد آمد.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
❌Inheritance❌ در شیئگرایی مواقعی پیش میآید که آبجکتها برخی خصوصیاتشان مشابه یکدیگر است اما در عین حال یک سری تفاوتها هم با همدیگر دارند و اینجا است که به منظور جلوگیری از دوبارهکاری و نوشتن کدهای تکراری، میتوانیم از مفهومی تحت عنوان Inheritance به معنای…
👆🏻👆🏻👆🏻توضیحات بیشتر در این زمینه👆🏻👆🏻👆🏻
🔹ایدهٔ وراثت به نوعی برگرفته از دنیای واقعی است. در واقع، همانطور که فرزند برخی خصوصیات خود را از والد به ارث میبرد، یک کلاس زیرشاخه که معمولاً تحت عنوان Child Class شناخته میشود نیز میتواند برخی خصوصیاتش را از کلاس اصلی ارثبری کند که اصطلاحاً Parent Class نام دارد. به طور کلی، انواع مختلفی از وراثت در شیئگرایی داریم که عبارتند از:
- Single Inheritance:
🔹به عبارتی، یک کلاس فرزند داریم که کلیهٔ خصوصیاتش را از کلاس والد به ارث میبرد.
- Multi-level Inheritance:
🔹در این مدل از وراثت، خود کلاس والد نیز میتواند کلاس والد دیگری داشته باشد. به بیانی بهتر، کلاس فرزند خصوصیات خود را از کلاس پدر به ارث میبرد و کلاس پدر نیز خصوصیاتش را از کلاس پدربزرگ به ارث خواهد برد تا جایی که میتوان گفت کلیهٔ خصوصیات پدربزرگ در کلاس فرزند نیز موجود هستند.
- Multiple Inheritance:
🔹 وراثت چندگانه در خیلی از زبانها مثل پیاچپی ساپورت نمیشود و حاکی از آن است که یک کلاس فرزند خصوصیاتش را از بیش از یک کلاس والد به ارث ببرد.
- Hierarchical Inheritance:
🔹 اساساً چنانچه بیش از یک کلاس (فرزند) از کلاس والد ارثبری کنند، گفته میشود که مدل وراثت Hierarchical است. به طور مثال، در اپ WhatsApp یک پیام میتواند در قالب متن، صوت و یا تصویر ارسال گردد؛ مثلاً فرض کنیم که یک کلاس Message داریم که کلاسهای فرزندی همچون AudioMessage ،TextMessage و PhotoMessage از آن ارثبری میکنند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🔹ایدهٔ وراثت به نوعی برگرفته از دنیای واقعی است. در واقع، همانطور که فرزند برخی خصوصیات خود را از والد به ارث میبرد، یک کلاس زیرشاخه که معمولاً تحت عنوان Child Class شناخته میشود نیز میتواند برخی خصوصیاتش را از کلاس اصلی ارثبری کند که اصطلاحاً Parent Class نام دارد. به طور کلی، انواع مختلفی از وراثت در شیئگرایی داریم که عبارتند از:
- Single Inheritance:
🔹به عبارتی، یک کلاس فرزند داریم که کلیهٔ خصوصیاتش را از کلاس والد به ارث میبرد.
- Multi-level Inheritance:
🔹در این مدل از وراثت، خود کلاس والد نیز میتواند کلاس والد دیگری داشته باشد. به بیانی بهتر، کلاس فرزند خصوصیات خود را از کلاس پدر به ارث میبرد و کلاس پدر نیز خصوصیاتش را از کلاس پدربزرگ به ارث خواهد برد تا جایی که میتوان گفت کلیهٔ خصوصیات پدربزرگ در کلاس فرزند نیز موجود هستند.
- Multiple Inheritance:
🔹 وراثت چندگانه در خیلی از زبانها مثل پیاچپی ساپورت نمیشود و حاکی از آن است که یک کلاس فرزند خصوصیاتش را از بیش از یک کلاس والد به ارث ببرد.
- Hierarchical Inheritance:
🔹 اساساً چنانچه بیش از یک کلاس (فرزند) از کلاس والد ارثبری کنند، گفته میشود که مدل وراثت Hierarchical است. به طور مثال، در اپ WhatsApp یک پیام میتواند در قالب متن، صوت و یا تصویر ارسال گردد؛ مثلاً فرض کنیم که یک کلاس Message داریم که کلاسهای فرزندی همچون AudioMessage ،TextMessage و PhotoMessage از آن ارثبری میکنند.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
Gopher Academy
🎯ویژگی های شی گرایی در گولنگ 🎯 🔹Struct 🔹Method 🔹Embedding 🔹Encapsulation 🔹Interface 🔹Inheritance 🔹Polymorphism 🔹Conclusion ➖➖➖➖➖➖➖➖➖ 🔰 @gopher_academy
❌Polymorphism❌
واژهٔ Poly در زبان یونانی به معنی «چند» است و Morph نیز به معنای «شکل» است که روی هم رفته میتوان معادلی همچون «چندشکلی/چندریختی» برایش در نظر گرفت. برای درک بهتر Polymorphism، نیاز است تا با مفهومی در شیئگرایی آشنا گردیم به نام اینترفیس که این امکان را برایمان فراهم میآورد تا یک ساختار کلی طراحی نموده سپس کلاسهای مد نظرمان را موظف به تبعیت از آن ساختار کنیم اما در عین حال هر کلاس میتواند پیادهسازی خاص خود را از آن ساختار داشته باشد؛ به عبارتی، آن ساختار کلی میتواند به اَشکال مختلفی پیادهسازی شود و این همان مفهوم چندشکلی است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
واژهٔ Poly در زبان یونانی به معنی «چند» است و Morph نیز به معنای «شکل» است که روی هم رفته میتوان معادلی همچون «چندشکلی/چندریختی» برایش در نظر گرفت. برای درک بهتر Polymorphism، نیاز است تا با مفهومی در شیئگرایی آشنا گردیم به نام اینترفیس که این امکان را برایمان فراهم میآورد تا یک ساختار کلی طراحی نموده سپس کلاسهای مد نظرمان را موظف به تبعیت از آن ساختار کنیم اما در عین حال هر کلاس میتواند پیادهسازی خاص خود را از آن ساختار داشته باشد؛ به عبارتی، آن ساختار کلی میتواند به اَشکال مختلفی پیادهسازی شود و این همان مفهوم چندشکلی است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
برای اینکه یک تابع anonymous بتونه خودشو به صورت بازگشتی فراخوانی کنه , باید ابتدا یک متغیر تعریف کنیم و سپس تابع anonymous رو بهش نسبت بدیم. در غیر اینصورت تابع تعریف شده قابل فراخوانی به صورت بازگشتی نخواهد بود.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯 ریپازیتوری چیست و چرا باید ازش استفاده کنیم ؟🎯
✅ ریپازیتوری یک استراتژی برای دسترسی به داده ها است.
✅ ریپازیتوری در حقیقت مانع تکرار در نوشتن Logic پروژه و Query های شما خواهد شد
✅ به حداقل رساندن وابستگی لایه دیتا به تکنولوژی ها
✅ از موضوعهای مهم دیگر میتوان به تست واحد پروژه اشاره کرد که قطعا با استفاده از Repository Pattern بسیار سادهتر و قابل اطمینانتر است.
✅ یکی دیگر از دلایل استفاده از ریپوزیتوری این است که سوئیچ کردن از یک دیتابیس به دیتابیس دیگر بسیار مشکلات کمتری را خواهد داشت. که این موضوع به دلیل جدا بودن پروژه شما از کوئریهای مختلف در کلاسهای متفاوت است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
✅ ریپازیتوری یک استراتژی برای دسترسی به داده ها است.
✅ ریپازیتوری در حقیقت مانع تکرار در نوشتن Logic پروژه و Query های شما خواهد شد
✅ به حداقل رساندن وابستگی لایه دیتا به تکنولوژی ها
✅ از موضوعهای مهم دیگر میتوان به تست واحد پروژه اشاره کرد که قطعا با استفاده از Repository Pattern بسیار سادهتر و قابل اطمینانتر است.
✅ یکی دیگر از دلایل استفاده از ریپوزیتوری این است که سوئیچ کردن از یک دیتابیس به دیتابیس دیگر بسیار مشکلات کمتری را خواهد داشت. که این موضوع به دلیل جدا بودن پروژه شما از کوئریهای مختلف در کلاسهای متفاوت است.
➖➖➖➖➖➖➖➖➖
🔰 @gopher_academy
🎯 درود دوستان بنده قصد دارم توی ریپوی زیر از تجربیاتی که دیگران توی مصاحبه گولنگ داشتن رو جمع آوری کنم.🎯
🎯 پس دوستانی که مصاحبه گولنگ داشتن برامون توی ریپوی زیر 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