بایگانی برچسب‌ها : تخصیص

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

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

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

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

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

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

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

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

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

انتساب Assignment

انتساب یا Assignment چیست؟

انتساب (Assignment) یا تخصیص در دانش برنامه نویسی عملی است که طی آن مقداری به فضای نگه‌داری متناظر با نام یک متغیر تخصیص داده می‌شود.

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

x = عبارت

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

الگوهای کاربردی مختلفی از عمل Assignment وجود دارد که معمولا به ساده‌سازی کد و کاهش تکرارها می‌انجامد و البته توسط تمامی زبان‌های برنامه‌نویسی پشتیبانی نمی‌شود. از رایج‌ترین انواع این الگوها می‌توان به انتساب افزوده (Augmented Assignment) اشاره نمود. در این نوع تخصیص مقدار جدیدی که قرار است به متغیر اختصاص داده شود به مقدار قبلی آن متغیر نیز بستگی دارد. به عنوان مثال در x += 2 مقدار کنونی متغیر x دو واحد افزایش می‌یابد.

در برخی از زبان‌های برنامه‌نویسی از انتساب زنجیره‌ای (Chained Assignment) نیز پشتیبانی می‌شود. برای مثال در a = b = c = 0 مقدار صفر به هر سه متغیر a و b و c تخصیص داده می‌شود. در برخی از زبان‌ها نیز امکان تخصیص موازی (Parallel Assignment) در نظر گرفته شده است به این شکل که تخصیص مقادیر مختلف به متغیرهای مجزا به صورت همزمان در یک دستور انجام می‌شود.

در بسیاری از زبان‌های برنامه‌نویسی از نماد یکسانی برای انتساب و تساوی مقایسه‌ای استفاده می‌شود. از اینرو در زبان‌هایی نظیر سی و پاسکال برای این دو عملگر از نمادهای متفاوتی استفاده می‌شود که می‌تواند به خوانایی و وضوح سورس کد کمک کند.

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

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