در حال دریافت اطلاعات ...
متن رفرنس
کلمه unless به معنای except if (مگر اینکه) است و یک شرط منفی ایجاد میکند. در واقع میتوان آن را معادل if … not (اگر … نه) دانست.
مثال پایه:
“You can’t push to the main branch unless you are an admin.”
(شما نمیتوانید روی برنچ اصلی کدی پوش کنید، مگر اینکه ادمین باشید.)
مفهوم: فقط در صورتی میتوانی پوش کنی که ادمین باشی (except if you are an admin).
مثالهای بیشتر:
I will finish the feature today unless I encounter a blocking bug.
(من امروز توسعه این فیچر را تمام میکنم، مگر اینکه به یک باگ مسدودکننده بربخورم.)
The deployment will fail. Unless you fix the dependencies, it won’t compile.
(دیپلوی با خطا مواجه خواهد شد. مگر اینکه وابستگیها (dependencies) را رفع کنی، کامپایل نخواهد شد.)
We can use a NoSQL database – unless you’d prefer a relational one.
(ما میتوانیم از دیتابیس NoSQL استفاده کنیم – مگر اینکه شما دیتابیس رابطهای را ترجیح بدهی.)
جایگزینی با if…not:
اغلب میتوانید به جای unless از ساختار منفی if استفاده کنید:
Unless we optimize the queries, the server will crash.
(= If we don’t optimize the queries, the server will crash.)
(مگر اینکه / اگر کوئریها را بهینه نکنیم، سرور کرش خواهد کرد.)
همه این عبارات به معنای if, on condition that (فقط در این صورت که / به این شرط که) هستند. as long as و so long as رایجتر هستند و provided (that) و providing (that) کمی رسمیترند. استفاده از that در دو مورد آخر اختیاری است.
کاربرد as long as / so long as:
You can use this free API as long as you don’t exceed the rate limit.
(میتوانی از این API رایگان استفاده کنی، به شرط اینکه / تا زمانی که از محدودیت تعداد درخواست عبور نکنی.)
We can deploy on Friday so long as all unit tests pass.
(میتوانیم جمعه دیپلوی کنیم، به شرطی که تمام تستهای یونیت پاس شوند.)
کاربرد provided (that) / providing (that):
Microservices architecture is great provided (that) you have a solid DevOps team.
(معماری مایکروسرویس عالی است، به این شرط که یک تیم دواپس قوی داشته باشید.)
Providing (that) the client approves the UI design, we will start coding tomorrow.
(به شرط اینکه کارفرما طراحی رابط کاربری را تایید کند، ما از فردا کدنویسی را شروع خواهیم کرد.)
نکته گرامری بسیار مهم: دقیقاً مانند if و in case، وقتی در مورد آینده صحبت میکنیم، هرگز بعد از unless، as long as، so long as، provided و providing از کلمه will استفاده نمیکنیم. به جای آن باید از زمان حال (مثل Present Simple) استفاده کنید، حتی اگر معنی جمله مربوط به آینده باشد.
مثالها:
The CI/CD pipeline won’t run unless the server is online.
(نگویید unless the server will be online)
(پایپلاین اجرا نخواهد شد، مگر اینکه سرور آنلاین باشد.)
Providing the build succeeds, we’re going to release version 2.0 tomorrow.
(نگویید providing the build will succeed)
(به شرطی که بیلد موفقیتآمیز باشد، فردا نسخه ۲.۰ را منتشر خواهیم کرد.)
نکته اصلی برای تمایز این عبارات، این است که آیا شرط، مانع از انجام یک کار میشود یا آن را ممکن میسازد:
Unless: بیانگر مانعی است که اگر برطرف نشود، عمل اصلی نمیتواند اتفاق بیفتد. چیزی ناراحتکننده یا نامطلوب را از وقوع بازمیدارد، مگر اینکه شرطش رخ دهد.
سوال خودآزمایی: “اگر این اتفاق نیفتد، چه میشود؟”
پاسخ با unless: “اگر این اتفاق نیفتد، آن کار اصلی هم نمیتواند انجام شود.”
As long as / Provided that: بیانگر شرطی است که باید برآورده شود تا عمل اصلی بتواند اتفاق بیفتد. چیزی مطلوب یا خنثی را ممکن میسازد، به شرط اینکه شرطش رخ دهد.
سوال خودآزمایی: “اگر این اتفاق بیفتد، چه میشود؟”
پاسخ با as long as: “اگر این اتفاق بیفتد، آن کار اصلی میتواند انجام شود.”
مثال نهایی برای بخش D:
فرض کنید در مورد pull request (PR) صحبت میکنیم:
“This pull request will not be merged unless it has at least two approvals.”
(این پول ریکوئست مرج نخواهد شد، مگر اینکه حداقل دو تاییدیه داشته باشد.)
تجزیه و تحلیل: مانع مرج شدن PR، نداشتن دو تاییدیه است. اگر تاییدیه نباشد، مرج نمیشود.
“This pull request can be merged as long as it has at least two approvals.”
(این پول ریکوئست میتواند مرج شود، به شرطی که حداقل دو تاییدیه داشته باشد.)
تجزیه و تحلیل: شرط مرج شدن PR، داشتن دو تاییدیه است. اگر تاییدیه باشد، مرج میشود.
امیدوارم این توضیح به درک بهتر شما کمک کرده باشد.
عنوان کارت
پاسخ