تک دیک

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

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
Search in posts
Search in pages
Filter by Categories
A
B
C
D
E
F
G
H
I
J
K
L
M
N
Numbers
O
P
Q
R
S
T
U
V
W
Y
Z
آگهی
اپلیکیشن ها
اچ‌تی‌ام‌ال
اسکرچ
اشخاص و شرکت ها
امنیت
امنیت آنلاین
اندروید
اینترنت
پایتون
پرسش و پاسخ
جاوااسکریپت
حروف انگلیسی
خبر
دوره های آموزشی
سخت‌افزار
سی‌اس‌اس
شبکه
فنی
کنسول جستجوی گوگل
گرافیک
لینوکس
مایکروسافت اکسل
مایکروسافت پاورپوینت
مایکروسافت ورد
مبانی کامپیوتر
مجله
مجله – امنیت
مجله – بازی
مجله – برنامه نویسی
مجله – دنیای اینترنت
مجله – سخت افزار
مجله – سیستم
مجله – شبکه
مجله – شبکه های اجتماعی
مجله – عمومی
مجله – گوشی‌های هوشمند
مجله – نرم افزار
مجله – ویندوز
مقدماتی
موضوعی
نرم‌افزار
وردپرس

ارزیابی اتصال کوتاه Short-Circuit Evaluation

ارزیابی اتصال کوتاه یا Short-Circuit Evaluation چیست؟

ارزیابی اتصال کوتاه (Short-Circuit Evaluation) به نحوه سنجش تعدادی از عملگرهای بولی در برخی از زبان های برنامه نویسی اشاره می‌کند که در آن‌ها صرفا زمانی عملوند دوم مورد ارزیابی قرار می‌گیرد که عملوند اول به تنهایی نتواند مقدار نهایی عبارت را مشخص کند.

به عبارت بهتر در Short Circuit اگر پیش از اتمام ارزیابی کامل یک عبارت، بتوان مقدار آن را تشخیص داد از ارزیابی مابقی عبارت خودداری می‌شود. ارزیابی مینیمال (Minimal Evaluation) نیز معادلی برای همین اصطلاح می‌باشد.

برای مثال، حاصل عمل AND بولی در صورتی که هر دو عملوند مقدار true داشته باشند برابر با true خواهد بود و در غیراینصورت برابر با false خواهد بود. بنابراین اگر عملوند اول برابر با false باشد نیازی به ارزیابی عملوند دوم نخواهد بود و حاصل عمل برابر با false می‌باشد. درنتیجه اگر از یک عملگر AND اتصال کوتاه (Short Circuit AND) استفاده کنید در صورتی که نتیجه ارزیابی عملوند اول برابر با false باشد بدون ارزیابی عملوند دوم، حاصل عمل برابر false درنظر گرفته می‌شود. اما اگر نتیجه ارزیابی عملوند اول برابر با true باشد به ناچار عملوند دوم نیز ارزیابی می‌شود.

به عنوان مثال دستور شرطی زیر در زبان جاوا را در نظر بگیرید. هدف این دستور چک کردن اینست که آیا مقدار متغیر x در بازه 5 تا 10 قرار می‌گیرد یا خیر؟ با فرض اینکه && عملگر AND اتصال کوتاه باشد اگر مقدار x برابر با 4 باشد عملوند اول به صورت false ارزیابی می‌شود و درنتیجه بدون چک کردن عملوند دوم نتیجه عبارت برابر false تشخیص داده می‌شود.

ارزیابی اتصال کوتاه Short-Circuit Evaluation
نمونه استفاده از عملگرهای Short-Circuit

همین موضوع در مورد عمل OR بولی نیز صادق است. حاصل این عملگر تنها در صورتی برابر با true خواهد بود که حداقل یکی از عملوندهایش برابر با true باشد. بنابراین اگر عملوند اول برابر با true باشد بدون نیاز به ارزیابی عملوند دوم، حاصل عمل برابر با true می‌باشد.

از آنجایی که حاصل ارزیابی یک عبارت XOR تنها زمانی true می‌باشد که دقیقا یکی از عملوندها برابر true باشد بنابراین برای این منظور نیاز به دانستن مقدار هر دو عملوند است و عملگر XOR اتصال کوتاه وجود ندارد.

فواید و معایب عملگرهای Short Circuit

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

همچنین یکی از کاربردهای رایج برای این عملگرها مربوط به زمانی است که ارزیابی اضافی عملوند دوم می‌تواند منجر به یک خطا شود. برای مثال در قطعه کد زیر به زبان C استفاده از عملگر اتصال کوتاه && تضمین می‌کند اگر p برابر با null باشد isalpha(p[0]) اجرا نشده و درنتیجه از بروز NullPointerException جلوگیری می‌کند.

bool is_first_char_valid_alpha(const char *p)
{
    return p != NULL && isalpha(p[0]);
}

لازم است بدانید استفاده از عملگرهای Short Circuit به دلیل اثرات جانبی که ممکن است در برخی موارد به خاطر اجرا نشدن و عدم ارزیابی عملوند دوم به وجود آید همیشه هم توصیه نمی‌شود.

اتصال کوتاه در زبان های برنامه نویسی رایج

در برخی از زبان های برنامه نویسی نظیر Lisp صرفا عملگرهای بولی به شکل اتصال کوتاه عمل می‌کنند اما در اغلب زبان ها هم عملگرهای بولی معمولی وجود دارد و هم عملگرهای بولی اتصال کوتاه. وجود این دو نوع عملگر در زبان های برنامه نویسی می‌تواند مشکل اثرات جانبی بیان شده در بالا را بسته به تشخیص برنامه نویس رفع کند.

در بسیاری از زبان های برنامه نویسی رایج از نماد & و | به عنوان عملگرهای استاندارد بولی و از نمادهای && و || برای عملگرهای Short-Circuit معادل استفاده می‌شود. زبان هایی مثل خانواده C، جاوا، جاوا اسکریپت و PHP از جمله همین زبان ها هستند. در Visual Basic .NET نیز از AndAlso و OrElse به عنوان عملگرهای اتصال کوتاه متناظر با And و Or معمولی استفاده می‌شود.

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

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

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

ما در تک‌دیک تلاش می‌کنیم محتوایی دقیق، واضح و بدون اشتباه منتشر کنیم. به همین دلیل هر مطلب پیش از انتشار بارها بازبینی می‌شود. از طرف دیگر با توجه به حجم بالای مطالب به کمک شما هم نیاز داریم. اگر احساس می‌کنید محتوای این صفحه باید بروزرسانی، تکمیل یا تصحیح شود و یا سوالی در مورد این مطلب دارید که بدون پاسخ مانده خوشحال می‌شویم آن را در بخش دیدگاه‌های همین مطلب با ما در میان بگذارید.

دیدگاه‌ها

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

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

نوشته‌های بیشتر

تبلیغات متنی ساده