Forwarded from Python BackendHub (Mani)
https://jsontopydantic.com/
خیلی خوبه. بهش جیسون میدین, بهتون مدل pydantic اون جیسون رو میده. برای integrate کردن api عالیه که سریع یک مدل داشته باشین.
یک ابزار دیگه هم هست که advance تره. یک cli tool هست که بر اساس openapi یا json یا xml براتون مدل پایندنتیک مینویسه.
https://github.com/koxudaxi/datamodel-code-generator/
@PyBackendHub
خیلی خوبه. بهش جیسون میدین, بهتون مدل pydantic اون جیسون رو میده. برای integrate کردن api عالیه که سریع یک مدل داشته باشین.
یک ابزار دیگه هم هست که advance تره. یک cli tool هست که بر اساس openapi یا json یا xml براتون مدل پایندنتیک مینویسه.
https://github.com/koxudaxi/datamodel-code-generator/
@PyBackendHub
Jsontopydantic
JSON to Pydantic
Convert JSON to Pydantic
Forwarded from Python BackendHub (Mani)
۲۷۰ هزار خط جیسون رو تو ۴ ثانیه فایل جنریت کرد.
برای همچین کاری از gpt استفاده نکنید بهتره چون:
۱. امکان خطا خیلی زیاده. جی پی تی یک LLM هست نمیتونه <فکر> کنه صرفا پترن مچ میکنه و یک ضرب و تقسیم ساده هم اشتباه میکنه. پس هیچوقت برای کد جنریت کردن ازش استفاده نکنید.
۲. سواگر یا redoc یا خانواده این ابزار ها همه از openapi استفاده میکنن. openapi یک Specification هست برای نوشتن api های rest. و داره از json schema استفاده میکنه. جیسون اسکیما هم دوباره یک Specification هست که تایپ ولیدیشن رو بین همه زبون ها استاندارد کرده. این ابزار AI نیست. چون تعداد حالت محدوده, و جیسون مشخصه چه چیزایی میتونه داخلش باشه پس میتونه به صورت static درست parse کنه.
اگه از جیسون پایندنتیک بسازین احتمال اینکه یک خروجی باشه که تو اون مثالتون نبوده هست. ولی اگه از json schema پایندنتیک بسازین, دیگه امکان نداره اشتباه parse کنید.
@PyBackendHub
برای همچین کاری از gpt استفاده نکنید بهتره چون:
۱. امکان خطا خیلی زیاده. جی پی تی یک LLM هست نمیتونه <فکر> کنه صرفا پترن مچ میکنه و یک ضرب و تقسیم ساده هم اشتباه میکنه. پس هیچوقت برای کد جنریت کردن ازش استفاده نکنید.
۲. سواگر یا redoc یا خانواده این ابزار ها همه از openapi استفاده میکنن. openapi یک Specification هست برای نوشتن api های rest. و داره از json schema استفاده میکنه. جیسون اسکیما هم دوباره یک Specification هست که تایپ ولیدیشن رو بین همه زبون ها استاندارد کرده. این ابزار AI نیست. چون تعداد حالت محدوده, و جیسون مشخصه چه چیزایی میتونه داخلش باشه پس میتونه به صورت static درست parse کنه.
اگه از جیسون پایندنتیک بسازین احتمال اینکه یک خروجی باشه که تو اون مثالتون نبوده هست. ولی اگه از json schema پایندنتیک بسازین, دیگه امکان نداره اشتباه parse کنید.
@PyBackendHub
Forwarded from Geek Alerts
برزیل توییتر رو فیلتر کرده، بعد ایلانماسک اومده واسه کاربرای برزیلی توییتر رو برده پشت کلادفلر :) الان توییتر اونجا وصله.
قاضی دیوان عالی هم دستور داده که دوباره فیلترش کنن «معلوم نیست چقدر شدنی باشه» ولی گفته هر روزی که توییتر در دسترس باشه ۹۲۰ هزار دلار جریمش میکنیم.
BBC News
@geekalerts
قاضی دیوان عالی هم دستور داده که دوباره فیلترش کنن «معلوم نیست چقدر شدنی باشه» ولی گفته هر روزی که توییتر در دسترس باشه ۹۲۰ هزار دلار جریمش میکنیم.
BBC News
@geekalerts
Forwarded from Ninja Learn | نینجا لرن
🐇 استفاده از RabbitMQ برای Celery توی جنگو 🥦
امروز میخوایم در مورد Celery و RabbitMQ حرف بزنیم و ببینیم چطوری میتونیم از این دو تا ابزار خفن برای مدیریت کارهای پسزمینه توی Django استفاده کنیم 😎.
حالا Celery چیه؟ 🍃
اگه نمیدونید سلری چیه و چیکار میکنه میتونید به این پست سر بزنید 😉
حالا RabbitMQ چیه؟ 🐇
اگه نمیدونید ربیت ام کیو چیه و چیکار میکنه میتونید به این پست سر بزنید 😉
چرا باید از RabbitMQ برای Celery استفاده کنیم؟ 🧐
1⃣ پایداری و سرعت: RabbitMQ خیلی سریع و پایدار کار میکنه و میتونه حجم زیادی از پیامها رو مدیریت کنه.
2⃣ مقیاسپذیری (Scalability):
اگه پروژهات بزرگ شد، RabbitMQ میتونه بدون مشکل تسکهای بیشتری رو هندل کنه.
3⃣ پشتیبانی از Celery: Celery به خوبی با RabbitMQ سازگاره و به راحتی میتونن با هم کار کنن.
چجوری RabbitMQ رو برای Celery توی جنگو تنظیم کنیم؟ 🛠️
خب، بیایید بریم سراغ بخش فنی و ببینیم چطور میتونیم از RabbitMQ و Celery توی جنگو استفاده کنیم.
1⃣ نصب RabbitMQ و Celery
اول از همه باید RabbitMQ رو نصب کنی. اگه از اوبونتو استفاده میکنی، این دستور رو بزن:
حالا Celery رو نصب کن:
2⃣ تنظیمات Celery توی پروژه جنگو
توی پروژه جنگوت، یه فایل جدید به اسم
بعد توی فایل init.py پروژهات این خط رو اضافه کن تا Celery لود بشه:
3⃣ تنظیمات RabbitMQ توی settings.py:
توی settings.py، تنظیمات مربوط به RabbitMQ رو به Celery اضافه کن:
4⃣ ساختن تسکها (Tasks)
حالا که تنظیمات انجام شد، میتونیم تسکهای پسزمینه رو بسازیم. توی هر اپلیکیشنی که تسکها رو میخوای ایجاد کنی، یه فایل tasks.py بساز و تسکهات رو توش تعریف کن:
5⃣ اجرای Celery Worker
برای اینکه Celery تسکها رو هندل کنه، Worker راه بندازی. با این دستور میتونی Worker رو اجرا کنی:
جمعبندی 🎯
فهمیدیم RabbitMQ و Celery یه ترکیب عالی برای اجرای تسکهای پسزمینه توی پروژههای جنگو هستن. با استفاده از RabbitMQ بهعنوان message broker و Celery برای مدیریت تسکها، میتونی کارهای سنگین و زمانبر رو به صورت پسزمینه اجرا کنی و تجربه کاربری اپلیکیشن رو بهتر کنی 😎
امید وارم مفید بوده باشه :)
@ninja_learn_ir
امروز میخوایم در مورد Celery و RabbitMQ حرف بزنیم و ببینیم چطوری میتونیم از این دو تا ابزار خفن برای مدیریت کارهای پسزمینه توی Django استفاده کنیم 😎.
حالا Celery چیه؟ 🍃
اگه نمیدونید سلری چیه و چیکار میکنه میتونید به این پست سر بزنید 😉
حالا RabbitMQ چیه؟ 🐇
اگه نمیدونید ربیت ام کیو چیه و چیکار میکنه میتونید به این پست سر بزنید 😉
چرا باید از RabbitMQ برای Celery استفاده کنیم؟ 🧐
1⃣ پایداری و سرعت: RabbitMQ خیلی سریع و پایدار کار میکنه و میتونه حجم زیادی از پیامها رو مدیریت کنه.
2⃣ مقیاسپذیری (Scalability):
اگه پروژهات بزرگ شد، RabbitMQ میتونه بدون مشکل تسکهای بیشتری رو هندل کنه.
3⃣ پشتیبانی از Celery: Celery به خوبی با RabbitMQ سازگاره و به راحتی میتونن با هم کار کنن.
چجوری RabbitMQ رو برای Celery توی جنگو تنظیم کنیم؟ 🛠️
خب، بیایید بریم سراغ بخش فنی و ببینیم چطور میتونیم از RabbitMQ و Celery توی جنگو استفاده کنیم.
1⃣ نصب RabbitMQ و Celery
اول از همه باید RabbitMQ رو نصب کنی. اگه از اوبونتو استفاده میکنی، این دستور رو بزن:
sudo apt-get install rabbitmq-server
حالا Celery رو نصب کن:
pip install celery
2⃣ تنظیمات Celery توی پروژه جنگو
توی پروژه جنگوت، یه فایل جدید به اسم
celery.py بساز و تنظیمات Celery رو توش بنویس. این فایل معمولاً توی کنار settings.py قرار میگیره.from __future__ import absolute_import
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings')
app = Celery('your_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
بعد توی فایل init.py پروژهات این خط رو اضافه کن تا Celery لود بشه:
from .celery import app as celery_app
3⃣ تنظیمات RabbitMQ توی settings.py:
توی settings.py، تنظیمات مربوط به RabbitMQ رو به Celery اضافه کن:
CELERY_BROKER_URL = 'amqp://localhost'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
4⃣ ساختن تسکها (Tasks)
حالا که تنظیمات انجام شد، میتونیم تسکهای پسزمینه رو بسازیم. توی هر اپلیکیشنی که تسکها رو میخوای ایجاد کنی، یه فایل tasks.py بساز و تسکهات رو توش تعریف کن:
from celery import shared_task
@shared_task
def send_email_task(email_address):
# کد ارسال ایمیل
print(f"ایمیل به {email_address} ارسال شد.")
5⃣ اجرای Celery Worker
برای اینکه Celery تسکها رو هندل کنه، Worker راه بندازی. با این دستور میتونی Worker رو اجرا کنی:
celery -A your_project worker --loglevel=info
جمعبندی 🎯
فهمیدیم RabbitMQ و Celery یه ترکیب عالی برای اجرای تسکهای پسزمینه توی پروژههای جنگو هستن. با استفاده از RabbitMQ بهعنوان message broker و Celery برای مدیریت تسکها، میتونی کارهای سنگین و زمانبر رو به صورت پسزمینه اجرا کنی و تجربه کاربری اپلیکیشن رو بهتر کنی 😎
#django #celery #rabbitmq #ambq
Forwarded from Python Hints
بسیاری از دوستان اعتراض کردند که ویدیوها روی یوتیوب قرار نگرفته (آخرین مورد فصل ۸ کتاب بود، چون وقت نشد.)
و خب همین موضوع، باعث شده خیلی از بچهها عقب بیوفتند (یاد امتحانات ترم تابستان دانشگاه نبودم)
برای همین این هفته جلسه لایو نخواهیم داشت تا فرصت کنیم ویدئوها رو برسونیم
متأسفانه جلسه هفته قبل رو هم رکورد شده نداریم، در صورتی که متوجه شدم حتی بسیار از بچههای سنیور هم با این مطالب آشنایی ندارند یا درک درست ندارند.
علاوه بر همه این موارد امروز چند اتفاق مهم و سخنرانی و ... هست که شخصاً میخوام براشون وقت بذارم و گوش بدم.
ولی درحال حاضر اولویت با آپلود ویدیوها روی یوتیوب هست.
#موقت
و خب همین موضوع، باعث شده خیلی از بچهها عقب بیوفتند (یاد امتحانات ترم تابستان دانشگاه نبودم)
برای همین این هفته جلسه لایو نخواهیم داشت تا فرصت کنیم ویدئوها رو برسونیم
متأسفانه جلسه هفته قبل رو هم رکورد شده نداریم، در صورتی که متوجه شدم حتی بسیار از بچههای سنیور هم با این مطالب آشنایی ندارند یا درک درست ندارند.
علاوه بر همه این موارد امروز چند اتفاق مهم و سخنرانی و ... هست که شخصاً میخوام براشون وقت بذارم و گوش بدم.
ولی درحال حاضر اولویت با آپلود ویدیوها روی یوتیوب هست.
#موقت
Forwarded from Geek Alerts
دکتر ساول جایزه ایگنوبل(یه جایزه طنزآمیز برای کسانی که با تحقیقاتشون باعث خنده و به فکر فرورفتن مردم میشن) رو برده چون ثابت کرده جاهایی مثل ژاپن که میگن تعداد زیادی آدم بالای ۱۰۰ سال دارن، در واقع دروغ میگن.
این ۱۰۰ سالهها خیلی وقت هست مردن و فقط توی سوابق دولتی زنده نوشته شدن.
یا راز ۱۰۰ ساله شدن توی اوکیناوا ژاپن مصرف سبزیجاته دروغه، اوکیناوا کمترین مصرف سبزیجاترو داره.
ucl.ac.uk
@geekalerts
این ۱۰۰ سالهها خیلی وقت هست مردن و فقط توی سوابق دولتی زنده نوشته شدن.
یا راز ۱۰۰ ساله شدن توی اوکیناوا ژاپن مصرف سبزیجاته دروغه، اوکیناوا کمترین مصرف سبزیجاترو داره.
ucl.ac.uk
@geekalerts
Forwarded from Geek Alerts
مرورگر Tor به امکان فعالیت ناشناس توی اینترنت معروف هست، حالا پلیس آلمان تونسته فردی مجرمی که از مرورگر Tor استفاده میکرده رو شناسایی و دستگیر کنه.
در واقع Tor میاد از شبکه غیرمتمرکز خودش «The Onion Router» برای مسیریابی و ارتباط امن و ناشناس بین مبدا و مقصد استفاده میکنه، اینجوری کسی نمیدونه شما از کدوم نقطه در حال استفاده از سایتها، یا پیام دادن به دیگران و هر فعالیتی داخل اینترنت هستید.
پلیس ولی تونسته با بررسی الگوهای شبکه و دادههای ارسالی و دریافتی مجرم رو شناسایی کنه.
مدیران Tor هم گفتن شخصی که دستگیر شده از نسخههای قدیمی Tor استفاده میکرده و اشاره داره به اینکه عملکرد خوب و درست Tor همیشه در آخرین نسخه ممکن هست.
تمام اینها یک بار دیگه یادآوری میکنه امکان ردیابی افراد در شبکههای اینترنت به سادگی ممکن هست.
techradar
@geekalerts
در واقع Tor میاد از شبکه غیرمتمرکز خودش «The Onion Router» برای مسیریابی و ارتباط امن و ناشناس بین مبدا و مقصد استفاده میکنه، اینجوری کسی نمیدونه شما از کدوم نقطه در حال استفاده از سایتها، یا پیام دادن به دیگران و هر فعالیتی داخل اینترنت هستید.
پلیس ولی تونسته با بررسی الگوهای شبکه و دادههای ارسالی و دریافتی مجرم رو شناسایی کنه.
مدیران Tor هم گفتن شخصی که دستگیر شده از نسخههای قدیمی Tor استفاده میکرده و اشاره داره به اینکه عملکرد خوب و درست Tor همیشه در آخرین نسخه ممکن هست.
تمام اینها یک بار دیگه یادآوری میکنه امکان ردیابی افراد در شبکههای اینترنت به سادگی ممکن هست.
techradar
@geekalerts
Forwarded from Code Module | کد ماژول (genix)
اگه به دنبال کتابی هستید که طیف وسیعی از موضوعات امنیتی از جمله رمزنگاری، امنیت شبکه، کنترل دسترسی، روشهای احراز هویت و دفاع از بدافزار رو پوشش بده، این کتاب رو که خودمم شروع کردم میخونم رو بهتون پیشنهاد میدم.
#book
@CodeModule
#book
@CodeModule
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
#XSS #dompurify
💎 معرفی لایبرری قدرتمند Dompurify 💎
لایبرری DomPurify ابزاری فوقالعاده قدرتمند برای تصفیه محتوای HTML و جلوگیری از حملات XSS هستش و باهاش میتونید محتوای ورودی کاربر رو به شکلی ایمن و تمیز پردازش کنید و تمامی عناصر مخرب رو حذف کنید.
این لایبرری با مرورگرها و محیطهای جاوااسکریپتی سازگاره و میتونید بدون نگرانی از بروز مشکلات امنیتی، از HTML داینامیک توی برنامههای خودتون استفاده کنید.
🌐 مشاهده داکیومنت Dompurify
نمونه استفاده 🚀
DOMPurify.sanitize('<img src=x onerror=alert(1)//>');
// becomes <img src="x">🆔 Channel | Group | YouTube
Forwarded from Gopher Academy
🔵 عنوان مقاله
µ micro: A Go-Powered Terminal-Based Text Editor
🟢 خلاصه مقاله:
"Micro" یک ویرایشگر متن است که با هدف جانشینی برای ویرایشگر "nano" طراحی و توسعه داده شده است. این پروژه که سالهاست در حال توسعه قرار دارد، به عنوان یک نمونه بالغ و خوب از پیادهسازی یک ویرایشگر متن با استفاده از زبان برنامهنویسی Go مطرح است. کد منبع میکرو در مخزن GitHub قابل دسترسی و مشاهده است، که نشاندهنده انتشار آزاد و قابلیت همکاری گستردهای بین توسعهدهندگان میباشد. این ویرایشگر متن با هدف فراهم آوردن تجربهای ساده و کارآمد در ویرایش متون برنامهنویسی و دیگر اسناد متنی راهاندازی شده است.
🟣لینک مقاله:
https://golangweekly.com/link/159257/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
µ micro: A Go-Powered Terminal-Based Text Editor
🟢 خلاصه مقاله:
"Micro" یک ویرایشگر متن است که با هدف جانشینی برای ویرایشگر "nano" طراحی و توسعه داده شده است. این پروژه که سالهاست در حال توسعه قرار دارد، به عنوان یک نمونه بالغ و خوب از پیادهسازی یک ویرایشگر متن با استفاده از زبان برنامهنویسی Go مطرح است. کد منبع میکرو در مخزن GitHub قابل دسترسی و مشاهده است، که نشاندهنده انتشار آزاد و قابلیت همکاری گستردهای بین توسعهدهندگان میباشد. این ویرایشگر متن با هدف فراهم آوردن تجربهای ساده و کارآمد در ویرایش متون برنامهنویسی و دیگر اسناد متنی راهاندازی شده است.
🟣لینک مقاله:
https://golangweekly.com/link/159257/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
یکی از مهمترین بهبودهای امنیتی در لینوکس 6.12:
معرفی ماژول Integrity Policy Enforcement (IPE) است. این ماژول به عنوان بخشی از بهروزرسانیهای ماژولهای امنیتی لینوکس (LSM) اضافه شده است و سالها در حال توسعه بوده است. IPE به عنوان جایگزینی برای کنترلهای دسترسی عمل میکند و بر روی ویژگیهای امنیتی غیرقابل تغییر اجزای سیستم تکیه دارد. این ماژول برای سیستمهای با عملکرد ثابت مانند دستگاههای فایروال شبکه و پلتفرمهای IoT طراحی شده است که فقط کدهای هدفمند خاصی را اجرا میکنند.
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت -donate
https://zarinp.al/learninghive.ir
معرفی ماژول Integrity Policy Enforcement (IPE) است. این ماژول به عنوان بخشی از بهروزرسانیهای ماژولهای امنیتی لینوکس (LSM) اضافه شده است و سالها در حال توسعه بوده است. IPE به عنوان جایگزینی برای کنترلهای دسترسی عمل میکند و بر روی ویژگیهای امنیتی غیرقابل تغییر اجزای سیستم تکیه دارد. این ماژول برای سیستمهای با عملکرد ثابت مانند دستگاههای فایروال شبکه و پلتفرمهای IoT طراحی شده است که فقط کدهای هدفمند خاصی را اجرا میکنند.
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
حمایت -donate
https://zarinp.al/learninghive.ir
Forwarded from Linuxor ?
Forwarded from DevTwitter | توییت برنامه نویسی
#بگایی_در_کمین
هر چی میتونید دوره و کتاب برنامه نویسی دانلود کنید که بعد طرح صیانت فقط محسن مدحج دارید.
@DevTwitter | <نهنگ لال/>
هر چی میتونید دوره و کتاب برنامه نویسی دانلود کنید که بعد طرح صیانت فقط محسن مدحج دارید.
@DevTwitter | <نهنگ لال/>
Forwarded from Python Hints
هفته پیش از یک نفر مصاحبه گرفتم، پرای پوزیشن سنیور خودش رو معرفی کرد
از ۳۰ تا سوال، ۲ تاش رو جواب داد.
تهش هم خودش تشکر کرد و گفت که میدونه دعوت به همکاری نمیشه و ...
الان توی لینکدین دیدم، دوره آموزش Advance Python گذاشته توی یک آکادمی.
امیدوارم توی این ۱ هفته معجزه رخ داده باشه، وگرنه وای به حال نسل بعدی
از ۳۰ تا سوال، ۲ تاش رو جواب داد.
تهش هم خودش تشکر کرد و گفت که میدونه دعوت به همکاری نمیشه و ...
الان توی لینکدین دیدم، دوره آموزش Advance Python گذاشته توی یک آکادمی.
امیدوارم توی این ۱ هفته معجزه رخ داده باشه، وگرنه وای به حال نسل بعدی
Forwarded from DevTwitter | توییت برنامه نویسی
گوگل یک ابزار جدید (عملا یک سیستم RAG) داده به اسم NotebookLLM که فایل هاتون را بهش میدید و قسمت های مختلف را براتون توضیح میده. اما نکته جالب اینه که یک فایل صوتی که حالت پادکست و مصاحبه طور داره درست میکنه که واقعا عالیه. من یک مقاله بهش دادم و این را درست کرد.
تصور کنید که چه کارهای جالبی میشه باهاش کرد.
https://blog.google/technology/ai/notebooklm-audio-overviews/
@DevTwitter | <Mehdi Allahyari/>
تصور کنید که چه کارهای جالبی میشه باهاش کرد.
https://blog.google/technology/ai/notebooklm-audio-overviews/
@DevTwitter | <Mehdi Allahyari/>
Forwarded from LearnPOV | لرن پی او وی
This media is not supported in your browser
VIEW IN TELEGRAM
سلام دوستان امیدوارم حالتون خوب باشه
همایش فرانت چپتر امسال واقعا همایش خفنی بود و از همینجا از همه رفقای فرانت چپتری تشکر میکنم بخاطر این اتفاق خفنی که رقم زدند
من از کل این رویداد مثل سفر و اتفاقات خفنی که در کنار هم رقم زدیم یه ولاگ تهیه کردم که ایشالا امروز اپلود میشه داخل چنل یوتوبم و میتونید ببینید ❤️🔥
این هم چنل یوتوب من هستش
https://youtube.com/@CoolyCode
به محض منتشر شدن لینک ویدیو رو داخل همین گروه میفرستم
همایش فرانت چپتر امسال واقعا همایش خفنی بود و از همینجا از همه رفقای فرانت چپتری تشکر میکنم بخاطر این اتفاق خفنی که رقم زدند
من از کل این رویداد مثل سفر و اتفاقات خفنی که در کنار هم رقم زدیم یه ولاگ تهیه کردم که ایشالا امروز اپلود میشه داخل چنل یوتوبم و میتونید ببینید ❤️🔥
این هم چنل یوتوب من هستش
https://youtube.com/@CoolyCode
به محض منتشر شدن لینک ویدیو رو داخل همین گروه میفرستم
Forwarded from Rust for Python developers
توی گروهی بحث دیدم راجب تفاوت های :
و دیدم انگار خیلی از اعضا تفاوت هاش رو درک نکردن برای همین
گفتم بزنم به ریشه و چون کانال خودمم مقدمات هست اینجا هم مطلب رو بذارم.
تفاوت اصلی توی این هست که چی برمیگردوند یادتون باشه وقتی توی
توی
اگر مستقیم روی
اگر روی
و در نهایت اگر روی
برای همین توی
امیوارم منظورم رو رسونده باشم؛ اگر نه حتما توی کامنت بپرسید.
.iter(), .iter_mut(), .into_iter(). و دیدم انگار خیلی از اعضا تفاوت هاش رو درک نکردن برای همین
closure های داخل متدهایی که با iterator میاد رو متوجه نمیشدند.گفتم بزنم به ریشه و چون کانال خودمم مقدمات هست اینجا هم مطلب رو بذارم.
تفاوت اصلی توی این هست که چی برمیگردوند یادتون باشه وقتی توی
Rust چیزای مشابه میبینید که متوجه نمیشید چرا نسخه های مختلف داره حتما ۲ تا مورد توی ذهنتون باید بیاد :1- Borrowing and Ownership
2- Memory (stack, heap, binary)توی
iterator ها هم تفاوت روی borrowing and ownership هست؛ وقتی از iter استفاده می کنید چیزی که برای هر آیتم تحویل میگیرید یک immutable reference خواهد بود & خالی وقتی از iter_mut استفاده کنید حتما mutable reference خواهید داشت &mut اما موضوع برای into_iter کمی متفاوت هست.اگر مستقیم روی
value استفاده بشه؛ ownership رو به دست خواهد گرفت.اگر روی
reference ایی از اون value استفاده بشه عملکرد iter رو خواهد داشت.و در نهایت اگر روی
mutable reference ایی از اون value استفاده بشه عملکردش مثل iter_mut خواهد شد.برای همین توی
closure متدهایی که روی اینها میاد مثل map, … حالات مختلفی رو میبینید.امیوارم منظورم رو رسونده باشم؛ اگر نه حتما توی کامنت بپرسید.
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 از زمانی که پاول توسط فرانسه دستگیر شد که تلگرام مجبور است, قوانین کپی رایت به درستی اجرا کند.
مخصوصا کانال های دانلود انیمه, فایل هاشون به مشکل کپی رایت خوردند و باعث از دست رفتن کانال می شود.
ممکن است این قانون برای کانال های دانلود فیلم و سریال تلگرام اجرا شود.
@TheRaymondDev
مخصوصا کانال های دانلود انیمه, فایل هاشون به مشکل کپی رایت خوردند و باعث از دست رفتن کانال می شود.
ممکن است این قانون برای کانال های دانلود فیلم و سریال تلگرام اجرا شود.
@TheRaymondDev
Forwarded from LearnPOV | لرن پی او وی
آقا گروهمون رفت بالای صد تا، دیگه نمیتونیم ببینیم کی سین زده... 😔😂
الله اکبر
گروهمونو داشته باشید اگر سوالی داشتید بپرسید
https://t.iss.one/coolycodegap
گروهمونو داشته باشید اگر سوالی داشتید بپرسید
https://t.iss.one/coolycodegap