کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲
2.92K subscribers
1.22K photos
279 videos
31 files
1.23K links
👈 اینجا جاییه که یاد می‌گیریم و با هم رشد می‌کنیم

💬 Group : @IRdeveloperchat
تبادل : @ProgramersCafeSup 🫴
تبلیغات : @Cafe_Code_add


♂️ مالک : @Ali_Rohany ♂️
Download Telegram
کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲
به نظر شما این کد در Rust اجرا میشه یا نه؟

let s = String::from("hello"); let a = s; println!("{}", s);
🦀 چرا این کد در Rust اجرا نمی‌شود؟

احتمالاً در نظرسنجی دیدید که جواب درست «اجرا نمی‌شود» بود، ولی چرا؟

این یکی از ویژگی‌هایی هست که Rust رو Memory Safe می‌کنه؛ ولی چجوری؟ 🤔

زمانی که شما یک متغیر یا ساختمان داده‌ای رو در Rust ایجاد می‌کنید که برای نگهداری داده‌هاش از Heap استفاده می‌کنه، اون داده یک Owner (مالک) داره که مشخص می‌کنه چه کسی مسئول اون داده و در نهایت آزاد کردن حافظه‌ی اون هست.

به‌طور مثال، در همین سؤال نظرسنجی:

let s = String::from("hello");

در اینجا "s" مالک "String" ایجادشده است.

حالا در خط بعدی:

let a = s;

مالکیت "String" از "s" به "a" منتقل (Move) می‌شه.

یعنی بعد از این خط، "a" مالک "String" هست و "s" دیگه مالک اون نیست.

بنابراین وقتی می‌نویسیم:

println!("{}", s);

کامپایلر به ما خطا می‌ده، چون "s" بعد از Move شدن دیگه قابل استفاده نیست.

اما چرا Rust این قانون رو داره؟ 🤔

اگر چند متغیر به شکل معمول مالک یک حافظه در Heap باشند، در زمان آزاد کردن حافظه ممکنه هر دو متغیر بخوان یک حافظه رو آزاد کنن و این می‌تونه باعث مشکلاتی مثل Double Free بشه.

ا Rust با سیستم Ownership این مشکلات رو در زمان کامپایل کنترل می‌کنه؛ بدون نیاز به Garbage Collector.

حالا یه سؤال:

🤔 الان s چیه؟ چه نوعیه و چه مقداری رو داره؟

اگه بلدی تو کامنتا بگو 👇

اگه درست بود، تو کانال فورواردش می‌کنم 😉🤗

#Rust #Ownership #Move #Programming

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe

𝗚𝗿𝗼𝘂𝗽 • @IRdeveloperchat
🔥41
This media is not supported in your browser
VIEW IN TELEGRAM
جهان: ما در حال تولید ربات های انسان نما هستیم.😪

ایران: ما انسان های ربات نما تولید کردیم.😏


پ.ن: دیده شده در الکامپ امروز

#fun

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe

𝗚𝗿𝗼𝘂𝗽 • @IRdeveloperchat
😁18💔1
Forwarded from Segaro
دیجیکالا داره تتر میفروشه چهارقسطه
17 هزار تومن بالاتر از قیمت 218 تومن.

❗️تتر قسطی دیگه چه سمی بود اونم تو دیجی کالا همه چیز عجیب شده


کی فکرشو میکرد دیجی کالا تتر بفروشه؟
👍9
Forwarded from KIANOLOGY
حکومت در حال تهیه لیست IP کاربران و در قدم اول مشتریان دیتاسنتر ها است.

در این طرح شماره موبایل + شماره ملی + آی پی به هم وصل می‌شوند و بدون ثبت آی پی در سامانه شاهکار دسترسی به اینترنت ممکن نیست!

نقض حریم خصوصی کاربران و حق ناشناس ماندن در اینترنت با قدرت در حال اجراست.

</Saeed Souzangar>

#اخبار_فناوری #اینترنت #فیلترنت #حریم_خصوصی
💔12😁1
Forwarded from Azizi’s Warm Corner ((AZIZI) ⚡️)
فرقی بین این شخص و ملا و ملا زاده (آقازاده) نمی‌بینم
تحریم تافل جز بریده شدن مسیر مردم عادی برای آزاد شدن و یا اصلا علم آموزی زیر سایه کشور تفکر راست کاری نمیکنه

بچه ملا و سیاستمدار ج.ا این وسط هیچ ضربه ای نمیخوره چون اکثرشون اصلا ایران به دنیا نیومدن با پاسپورت دومینیکن و ....ش می‌ره اونور

نکته جالب همینکه خودش اونوره
🤬9🤯1💔1
وزیر ارتباطات‌درمصاحبه‌ای‌جدید بارسانه‌ها اعلام کرد:
که رفع فیلترینگ فصای مجازی رو از اول مهرماه استارت خواهند زد و بعد از چند هفته تمامی پلتفرم‌ های فضای مجازی کامل رفع فیلتر میشوند


#fun

𝗖𝗵𝗮𝗻𝗻𝗲𝗹 • @Programers_Cafe

𝗚𝗿𝗼𝘂𝗽 • @IRdeveloperchat
😁14
کافه برنامه نویسان | 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗲𝗿s 𝗖𝗮𝗳𝗲
تو کامنت ها دیدم دوستان درباره خود مفهوم نبودن مقدار داشتن نظر میدادن که بودنش درسته یا نه

صد در صد "مفهوم نبودن مقدار" را ما باید داشته باشیم، سوال من این بود که طریقه پیاده سازی اون به شکل

user = null

که در زبان های js، cpp و ... داریم، باعث میشه که پیچیدگی برنامه ما کاهش‌ پيدا کنه یا باعت افزایش پیچیدگی برنامه، بخصوص در زمان debug کردن میشه؟
3