تک دیک

واژه نامه و مجله آموزشی کامپیوتر و فناوری

انتساب افزوده Augmented Assignment

انتساب افزوده یا Augmented Assignment چیست؟

انتساب افزوده (Augmented Assignment) نوعی عملگر انتساب است که در برخی از زبان‌های برنامه‌نویسی برای ساده‌سازی گونه‌ی خاصی از تخصیص مقادیر به کار می‌رود. به عبارت بهتر این نوع عملگر معادل با انتسابی است که در آن مقدار تخصیص یافته به متغیر از یک عملگر حاصل می‌شود و یکی از عملوندهای این عملگر نیز همان متغیر است. به این عملگر، انتساب مرکب (Compound Assignment) نیز گفته می‌شود.

به عنوان نمونه در عبارت x += 2 از عملگر انتساب افزوده += استفاده شده است. این عبارت دقیقا از نظر حاصل معادل با عبارت گسترده x = x + 2 می‌باشد. به بیان دیگر در انتساب افزوده قرار است به صورت درجا عملی انجام شود که یکی از عملوندهایش یک متغیر است و حاصل آن نیز به همان متغیر تخصیص داده می‌شود.

در زبان‌های برنامه‌نویسی که از این نوع انتساب پشتیبانی می‌شود برای اغلب عملگرهای دودویی نظیر عملگرهای حسابی (انتساب افزوده برای جمع +=، برای تفریق -=، برای ضرب *=، برای تقسیم /=)، عملگرهای شیفت بیتی (انتساب افزوده برای شیفت به چپ <<= و برای شیفت به راست >>=) و … معادل انتساب افزوده وجود دارد.

علاوه بر مزیت سادگی بیشتر در استفاده از انتساب افزوده، هنگامی که از معادل گسترده استفاده می‌شود در واقع دو مرتبه به مکان متغیر مراجعه می‌شود؛ یک مرتبه برای خواندن مقدار متغیر و استفاده از آن به عنوان عملوند و بار دوم برای تخصیص مقدار جدید به همان متغیر. به بیان دیگر در چنین حالتی متغیر باید دو بار ارزیابی (Evaluate) شود در حالی که هنگام استفاده از انتساب افزوده متغیر تنها یک مرتبه ارزیابی می‌شود و در صورت وجود معادل مربوطه در کد ماشین، این عمل به صورت یکجا صورت می‌گیرد.

انتساب افزوده در بسیاری از زبان‌ها از جمله سی (C)، سی پلاس پلاس (C++)، سی شارپ (C#)، ویژوال بیسیک (Visual Basic)، جاوا (Java)، جاوا اسکریپت (JavaScript)، پی اچ پی (PHP)، پایتون (Python) و … پشتیبانی می‌شود.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

امیرحسین شهسواری

عاشق دنیای رایانه و فناوری به خصوص برنامه نویسی هستم؛ یادگرفتن و البته یاد دادن چیزای جالبی که یاد گرفتم باعث خوشحالیم میشه و از اولویت‌های اصلی زندگیم به حساب میاد. از مدیریت و نوشتن در تک دیک هم واقعا لذت می‌برم :)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *