از تگهای تحلیلگر برای شناسایی این استفاده میشود که یک راهحل چگونه حل شده است.
سپس میتوان از این تگها برای این کارها استفاده کرد:
یک تگ رشتهای است که به این شکل قالببندی میشود: <category>:<thing>.
ما از چهار دستهی مختلف پشتیبانی میکنیم که از بالاترین سطح به پایینترین سطح مرتب شدهاند:
| دسته | توضیح | میزان خاص بودن | مثالها |
|---|---|---|---|
paradigm |
یک الگوی برنامهنویسی | بسیار سطحبالا، مخصوص یک ترک خاص نیست |
imperative، functional
|
technique |
تکنیکی که به کار گرفته میشود | سطحبالا، بیشترشان مخصوص یک ترک خاص نیستند |
recursion، immutability
|
construct |
یک سازهی زبانی | بسیاری از آنها مخصوص یک ترک خاص نیستند |
bitwise-and، for-loop
|
uses |
کاربرد مخصوص یک زبان، مثل نوعها یا متدها | سطحپایین، مخصوص یک ترک خاص |
DateTime.add_seconds، IEnumerable
|
چند نمونه تگ:
paradigm:functionaltechnique:recursionconstruct:bitwise-anduses:DateTime.add_secondsترکها آزادند راهحلها را هر طور که صلاح میدانند تگ کنند، اما توصیه میکنیم در صورت امکان از فهرست تگهای پرکاربرد زیر استفاده کنید. استفاده از مجموعهای مشترک از تگها به ما امکان میدهد کارهای جالبی انجام دهیم، مثل پیوند دادن راهحلها میان ترکها.
| تگ | توضیح |
|---|---|
paradigm:array |
از برنامهنویسی آرایهای استفاده میکند. |
paradigm:declarative |
از برنامهنویسی اعلانی استفاده میکند. |
paradigm:functional |
از برنامهنویسی تابعی استفاده میکند. |
paradigm:generic |
از برنامهنویسی عمومی استفاده میکند. |
paradigm:imperative |
از برنامهنویسی امری استفاده میکند. |
paradigm:logic |
از برنامهنویسی منطقی استفاده میکند. |
paradigm:meta |
از فرابرنامهنویسی استفاده میکند. |
paradigm:object-oriented |
از برنامهنویسی شیءگرا استفاده میکند. |
paradigm:procedural |
از برنامهنویسی رویهای استفاده میکند. |
paradigm:reflective |
از برنامهنویسی بازتابی استفاده میکند. |
paradigm:stack-oriented |
از برنامهنویسی پشتهمحور استفاده میکند. |
| تگ | توضیح |
|---|---|
technique:bit-manipulation |
بیتها را دستکاری میکند، معمولاً با عملگرهای بیتی (مثلاً AND، XOR یا شیفت به چپ) |
technique:bit-shifting |
بیتها را در یک عدد جابهجا میکند |
technique:boolean-logic |
عملیات منطقی (AND، OR، NOT) را انجام میدهد |
technique:composition |
از ترکیب استفاده میکند |
technique:concurrency |
کد را بهصورت همروند اجرا میکند |
technique:enumeration |
مقادیر را شمارش میکند |
technique:error-handling |
خطاها را مدیریت میکند |
technique:exceptions |
استثناها را میگیرد یا پرتاب میکند |
technique:function-composition |
از ترکیب توابع استفاده میکند |
technique:generator |
از یک مولد استفاده میکند |
technique:higher-order-functions |
از توابع مرتبهبالا استفاده میکند |
technique:immutability |
از تغییرناپذیری استفاده میکند |
technique:immutable-collection |
از مجموعهای استفاده میکند که محتوایش تغییرناپذیر است |
technique:inheritance |
از ارثبری استفاده میکند |
technique:laziness |
مقادیر را بهصورت تنبل و فقط در صورت نیاز تولید میکند |
technique:locks |
از قفلها برای دسترسی انحصاری به منابع استفاده میکند |
technique:looping |
از حلقهها استفاده میکند |
technique:math |
از ریاضیات استفاده میکند |
technique:memory-management |
حافظه را مدیریت میکند |
technique:ordering |
ترتیب دادهها را تعیین میکند |
technique:parallelism |
کد را بهصورت موازی اجرا میکند |
technique:parser |
دادهها را تجزیه میکند |
technique:pointers |
از اشارهگرها استفاده میکند |
technique:randomness |
از تصادفی بودن استفاده میکند |
technique:recursion |
از بازگشت استفاده میکند |
technique:regular-expression |
از عبارتهای باقاعده استفاده میکند |
technique:short-circuiting |
از ارزیابی میانبر استفاده میکند تا از ارزیابیهای غیرضروری جلوگیری کند |
technique:sorted-collection |
از مجموعهای استفاده میکند که عناصرش همیشه مرتباند |
technique:sorting |
دادهها را مرتب میکند |
technique:tail-call-optimization |
از بهینهسازی فراخوانی پایانی برای بازگشت کارآمد استفاده میکند |
technique:type-conversion |
مقادیر را از یک نوع به نوع دیگری تبدیل میکند |
technique:unsafe |
از کد ناامن استفاده میکند (مثلاً حساب اشارهگر) |
| تگ | توضیح |
|---|---|
construct:abstract-class |
یک کلاس انتزاعی تعریف میکند |
construct:abstract-method |
یک متد انتزاعی تعریف میکند |
construct:add-assignment |
جمع را با انتساب ترکیب میکند |
construct:add |
از جمع استفاده میکند |
construct:array |
یک آرایه را تعریف یا استفاده میکند |
construct:assignment |
یک مقدار را به یک متغیر/اسم اختصاص میدهد یا متصل میکند |
construct:async-await |
از async/await استفاده میکند |
construct:attribute |
یک عضو را با فراداده نشانهگذاری میکند |
construct:auto-implemented-property |
یک ویژگی خودپیادهسازیشده تعریف میکند |
construct:big-integer |
از یک عدد صحیح بزرگ استفاده میکند |
construct:binary-number |
یک عدد را در نمایش دودویی تعریف میکند |
construct:bit-array |
یک آرایهی بیتی تعریف یا استفاده میکند |
construct:bitwise-and-assignment |
یک AND بیتی را با انتساب ترکیب میکند |
construct:bitwise-and |
یک AND بیتی را اجرا میکند |
construct:bitwise-left-shift-assignment |
یک شیفت بیتی به چپ را با انتساب ترکیب میکند |
construct:bitwise-left-shift |
یک شیفت بیتی به چپ را اجرا میکند |
construct:bitwise-not |
یک NOT بیتی را اجرا میکند |
construct:bitwise-or-assignment |
یک OR بیتی را با انتساب ترکیب میکند |
construct:bitwise-or |
یک OR بیتی را اجرا میکند |
construct:bitwise-right-shift-assignment |
یک شیفت بیتی به راست را با انتساب ترکیب میکند |
construct:bitwise-right-shift |
یک شیفت بیتی به راست را اجرا میکند |
construct:bitwise-xor-assignment |
یک XOR بیتی را با انتساب ترکیب میکند |
construct:bitwise-xor |
یک XOR بیتی را اجرا میکند |
construct:block |
یک بلوک تعریف میکند که فهرستی از دستورها را در خود دارد |
construct:boolean |
یک مقدار منطقی تعریف یا استفاده میکند |
construct:boxing |
از جعبهبندی استفاده میکند |
construct:break |
از یک حلقه خارج میشود |
construct:byte |
از یک عدد صحیح ۸ بیتی بدون علامت استفاده میکند |
construct:catch |
یک استثنا را میگیرد |
construct:char |
از یک کاراکتر استفاده میکند |
construct:checked-arithmetic |
از حساب بررسیشده استفاده میکند (که از سرریز جلوگیری میکند) |
construct:class |
یک کلاس تعریف میکند |
construct:collection-initializer |
مقادیر یک مجموعه را با یک آغازگر تعیین میکند |
construct:command |
یک فرمان تعریف میکند |
construct:comment |
یک توضیح تعریف میکند |
construct:comparison-chaining |
فراخوانیهای مقایسه را زنجیره میکند |
construct:comparison |
دو مقدار را از نظر ترتیب نسبیشان مقایسه میکند |
construct:complex-number |
از یک عدد مختلط استفاده میکند |
construct:computed-string |
یک رشتهی محاسبهشده تعریف میکند |
construct:concatenation |
مقادیر را به هم میچسباند |
construct:conditional-access |
بهصورت شرطی به یک متد دسترسی پیدا میکند |
construct:conditional-operator |
از یک عملگر شرطی سهتایی استفاده میکند |
construct:conditional |
کد را بهصورت شرطی اجرا میکند |
construct:constant |
یک مقدار ثابت (تغییرناپذیر) تعریف میکند |
construct:constructor |
یک سازنده تعریف میکند |
construct:continue |
به تکرار بعدی یک حلقه ادامه میدهد |
construct:conversion-operator |
یک عملگر تبدیل تعریف میکند |
construct:copy |
یک مقدار را کپی میکند |
construct:coroutine |
یک همروال تعریف یا استفاده میکند |
construct:custom-attribute |
یک خصیصهی سفارشی تعریف میکند |
construct:date-time |
از مقداری استفاده میکند که ترکیبی از تاریخ و زمان است |
construct:date |
از مقداری استفاده میکند که یک تاریخ را نشان میدهد (بدون زمان) |
construct:decimal |
از یک عدد اعشاری ۱۲۸ بیتی استفاده میکند |
construct:decrement |
یک مقدار را کاهش میدهد |
construct:default-interface-implementation |
پیادهسازی پیشفرض را در یک رابط تعریف میکند |
construct:default |
یک مقدار پیشفرض تعریف میکند (مثلاً برای یک پارامتر) |
construct:destructuring |
یک مقدار را به اجزای سازندهاش تجزیه میکند |
construct:dictionary-comprehension |
یک دیکشنری را با یک درک میسازد |
construct:dictionary |
یک دیکشنری/نگاشت تعریف یا استفاده میکند |
construct:discard |
از مقدار ویژهی نادیدهانگاشتن استفاده میکند |
construct:divide-assignment |
تقسیم را با انتساب ترکیب میکند |
construct:divide |
از تقسیم استفاده میکند |
construct:do-while-loop |
از یک حلقهی do-while استفاده میکند |
construct:double |
از یک عدد اعشاری ۶۴ بیتی استفاده میکند |
construct:else |
یک شاخهی else تعریف میکند |
construct:enum |
یک enum تعریف یا استفاده میکند (شمارشی از مقادیر) |
construct:equality |
برابری دو مقدار را مقایسه میکند |
construct:error |
یک خطا تعریف یا استفاده میکند |
construct:event |
رویدادها را تعریف یا استفاده میکند |
construct:exception |
استثناها را تعریف یا استفاده میکند |
construct:explicit-conversion |
بهصورت صریح از یک نوع به نوع دیگری تبدیل میکند |
construct:explicit-import |
فقط بخشی از قابلیتها را وارد میکند |
construct:exponentiation |
توان یک مقدار را محاسبه میکند |
construct:expression-bodied-member |
یک عضو با بدنهی عبارت تعریف میکند |
construct:extension-method |
یک متد الحاقی تعریف میکند |
construct:field-access |
به یک فیلد دسترسی پیدا میکند |
construct:field |
یک فیلد تعریف میکند |
construct:finally |
از finally استفاده میکند تا مطمئن شود یک بلوک کد مشخص همیشه اجرا میشود |
construct:flags-enum |
یک enum پرچمی تعریف یا استفاده میکند |
construct:float |
از یک عدد اعشاری ۳۲ بیتی استفاده میکند |
construct:floating-point-number |
از یک عدد اعشاری استفاده میکند |
construct:for-loop |
از یک حلقهی for استفاده میکند |
construct:foreach |
از یک حلقهی foreach استفاده میکند |
construct:function-overloading |
از سربارگذاری توابع استفاده میکند |
construct:function |
یک تابع تعریف میکند |
construct:generator |
یک تابع یا متد مولد تعریف میکند |
construct:generic-function |
تابعی تعریف میکند که با یک یا چند نوع پارامتریشده است |
construct:generic-method |
متدی تعریف میکند که با یک یا چند نوع پارامتریشده است |
construct:generic-type |
نوعی تعریف میکند که با یک یا چند نوع پارامتریشده است |
construct:getter |
یک گیرنده تعریف میکند |
construct:global-function |
تابعی تعریف میکند که بهصورت سراسری در دسترس است |
construct:global-variable |
متغیری تعریف میکند که بهصورت سراسری در دسترس است |
construct:header |
یک فایل سرآیند تعریف میکند |
construct:hexadecimal-number |
یک عدد را در نمایش مبنای شانزده تعریف میکند |
construct:if |
از دستور if استفاده میکند |
construct:implicit-conversion |
بهصورت ضمنی از یک نوع به نوع دیگری تبدیل میکند |
construct:implicit-loop |
بهصورت ضمنی روی مجموعهای از مقادیر حلقه میزند |
construct:implicit-return |
یک مقدار را بهصورت ضمنی برمیگرداند |
construct:import |
قابلیتهایی را که جای دیگری پیادهسازی شدهاند وارد میکند (مثلاً از یک فضای نام/ماژول) |
construct:increment |
یک مقدار را افزایش میدهد |
construct:index-operator |
عملگری برای نمایهگذاری یک شیء تعریف میکند |
construct:indexer |
یک نمایهساز تعریف یا استفاده میکند |
construct:indexing |
به یک مقدار با نمایه دسترسی پیدا میکند |
construct:inequality |
نامساوی بودن دو مقدار را مقایسه میکند |
construct:infix-operator |
یک عملگر میانوندی تعریف میکند |
construct:initialization |
یک شیء را پس از ساخت آغاز میکند |
construct:initializer-list |
مقادیر فیلدهای یک شیء را آغاز میکند |
construct:initializer |
یک شیء را آغاز میکند |
construct:instance |
نمونهای از یک نوع را میسازد یا استفاده میکند |
construct:instantiation |
نمونهای از یک نوع میسازد |
construct:int |
از یک عدد صحیح ۳۲ بیتی علامتدار استفاده میکند |
construct:integral-number |
از یک عدد صحیح استفاده میکند |
construct:interface |
یک رابط تعریف میکند |
construct:invocation |
یک متد/تابع را فراخوانی میکند |
construct:iterator |
یک تابع یا متد تعریف میکند که میتوان روی آن پیمایش کرد |
construct:jagged-array |
از یک آرایهی دندانهدار استفاده میکند (آرایهای از آرایهها) |
construct:lambda |
یک لامبدا تعریف میکند (که به آن «تابع بینام» هم میگویند) |
construct:linked-list |
از یک لیست پیوندی استفاده میکند |
construct:linq |
از LINQ استفاده میکند |
construct:list-comprehension |
یک لیست را با درک میسازد |
construct:list |
از یک لیست استفاده میکند |
construct:local-function |
یک تابع محلی تعریف میکند |
construct:local-variable |
یک متغیر محلی تعریف میکند |
construct:lock |
از یک قفل استفاده میکند |
construct:logical-and |
یک AND منطقی را اجرا میکند |
construct:logical-not |
یک NOT منطقی را اجرا میکند |
construct:logical-or |
یک OR منطقی را اجرا میکند |
construct:long |
از یک عدد صحیح ۶۴ بیتی علامتدار استفاده میکند |
construct:loop |
یک حلقه تعریف میکند |
construct:macro |
یک ماکرو تعریف میکند |
construct:membership-test |
بررسی میکند که آیا یک مقدار عضوی از مقدار دیگری است |
construct:metatable |
یک فرا جدول تعریف میکند |
construct:method-chaining |
چندین فراخوانی متد را زنجیره میکند |
construct:method-overloading |
از سربارگذاری متدها استفاده میکند |
construct:method-override |
یک متد بازنویسیشده تعریف میکند |
construct:method |
یک متد تعریف میکند |
construct:module |
یک ماژول تعریف میکند (گروهبندی کد) |
construct:modulo-assignment |
باقیماندهی تقسیم را با انتساب ترکیب میکند |
construct:modulo |
از باقیماندهی تقسیم استفاده میکند |
construct:multi-dimensional-array |
از آرایهای با چند بعد استفاده میکند |
construct:multiline-string |
یک رشتهی چندخطی تعریف میکند |
construct:multiple-assignment |
چند مقدار را همزمان اختصاص میدهد |
construct:multiple-dispatch |
از ارسال چندگانه استفاده میکند |
construct:multiply-assignment |
ضرب را با انتساب ترکیب میکند |
construct:multiply |
از ضرب استفاده میکند |
construct:named-argument |
یک آرگومان را با اسم پاس میدهد |
construct:namespace |
یک فضای نام تعریف میکند (گروهبندی کد) |
construct:nested-function |
یک تابع تودرتو تعریف میکند |
construct:nested-type |
یک نوع تودرتو تعریف میکند |
construct:nesting |
از تودرتویی استفاده میکند |
construct:nint |
از یک عدد صحیح علامتدار وابسته به پلتفرم استفاده میکند (۳۲ یا ۶۴ بیتی) |
construct:nuint |
از یک عدد صحیح بدون علامت وابسته به پلتفرم استفاده میکند (۳۲ یا ۶۴ بیتی) |
construct:null |
از null/nil برای نشان دادن نبود یک مقدار استفاده میکند |
construct:nullability |
با مقادیر null/nil سر و کار دارد |
construct:number |
از یک عدد استفاده میکند (علامتدار یا بدون علامت) |
construct:object-initializer |
مقادیر یک شیء را با یک آغازگر تعیین میکند |
construct:octal-number |
یک عدد را در نمایش مبنای هشت تعریف میکند |
construct:operator-overloading |
از سربارگذاری عملگرها استفاده میکند |
construct:option |
از یک نوع گزینه استفاده میکند |
construct:optional-parameter |
یک پارامتر اختیاری تعریف میکند |
construct:overflow |
از سرریز حساب استفاده میکند |
construct:parameter |
یک پارامتر تعریف میکند |
construct:parenthesized-expression |
یک عبارت را در پرانتز میگذارد |
construct:pattern-matching |
از تطبیق الگو استفاده میکند |
construct:pattern |
الگویی تعریف میکند که در تطبیق الگو به کار میرود |
construct:pipe-backward |
از عملگر لولهی رو به عقب استفاده میکند |
construct:pipe-forward |
از عملگر لولهی رو به جلو استفاده میکند |
construct:pipeline |
یک خط لوله تعریف میکند |
construct:point-free |
توابعی را بدون آرگومانهایی که روی آنها کار میکنند تعریف میکند |
construct:pointer |
از یک اشارهگر استفاده میکند |
construct:postfix-decrement |
یک مقدار را با نمایش پسوندی کاهش میدهد |
construct:postfix-increment |
یک مقدار را با نمایش پسوندی افزایش میدهد |
construct:prefix-decrement |
یک مقدار را با نمایش پیشوندی کاهش میدهد |
construct:prefix-increment |
یک مقدار را با نمایش پیشوندی افزایش میدهد |
construct:print |
یک مقدار را در کنسول چاپ میکند |
construct:property |
یک ویژگی (گیرنده/تنظیمکننده) تعریف میکند |
construct:query-expression |
دادهها را از طریق یک عبارت پرسوجو میکند |
construct:queue |
از یک صف استفاده میکند |
construct:range |
یک بازه تعریف میکند |
construct:read-only |
یک مقدار فقطخواندنی تعریف میکند |
construct:record |
یک رکورد تعریف میکند |
construct:regular-expression |
یک عبارت باقاعده تعریف یا استفاده میکند |
construct:result |
از یک نوع نتیجه استفاده میکند |
construct:return-type |
نوع بازگشتی یک تابع یا متد را تعریف میکند |
construct:return |
از یک تابع/متد برمیگردد |
construct:sbyte |
از یک عدد صحیح ۸ بیتی علامتدار استفاده میکند |
construct:scientific-notation-number |
یک عدد را در نمایش علمی تعریف میکند |
construct:set-comprehension |
یک مجموعه را با درک میسازد |
construct:set |
از یک مجموعه استفاده میکند |
construct:setter |
یک تنظیمکننده تعریف میکند |
construct:short |
از یک عدد صحیح ۱۶ بیتی علامتدار استفاده میکند |
construct:slice |
از یک برش استفاده میکند |
construct:stack |
از یک پشته استفاده میکند |
construct:static-field |
یک فیلد ایستا تعریف میکند |
construct:static-method |
یک متد ایستا تعریف میکند |
construct:string-formatting |
یک رشته را با یک رشتهی قالب میسازد |
construct:string-interpolation |
یک رشتهی میانگذاریشده تعریف میکند |
construct:string |
یک رشته تعریف میکند |
construct:struct |
یک ساختار تعریف میکند |
construct:subtract-assignment |
تفریق را با انتساب ترکیب میکند |
construct:subtract |
از تفریق استفاده میکند |
construct:sum-type |
یک نوع جمع تعریف میکند |
construct:switch |
از یک switch استفاده میکند |
construct:table |
یک جدول تعریف میکند |
construct:template-alias |
یک نام مستعار برای یک قالب تعریف میکند |
construct:template-parameter |
یک پارامتر قالب تعریف میکند |
construct:template |
یک قالب تعریف میکند |
construct:throw |
یک استثنا پرتاب میکند |
construct:time |
از شیءای استفاده میکند که زمان را نشان میدهد |
construct:try |
یک استثنا را بهصورت صریح مدیریت میکند |
construct:tuple |
از یک تاپل استفاده میکند |
construct:type-alias |
یک نام مستعار برای یک نوع تعریف میکند |
construct:type-conversion |
یک مقدار را به نوع دیگری تبدیل (کست) میکند |
construct:type-extension |
یک نوع را با قابلیتهای جدید گسترش میدهد |
construct:type-inference |
نوع یک مقدار/تابع را بهصورت خودکار استنتاج میکند |
construct:type-test |
بررسی میکند که آیا یک مقدار نوع مشخصی دارد |
construct:uint |
از یک عدد صحیح ۳۲ بیتی بدون علامت استفاده میکند |
construct:ulong |
از یک عدد صحیح ۶۴ بیتی بدون علامت استفاده میکند |
construct:unary-minus |
از یک منهای یکانی استفاده میکند |
construct:unary-plus |
از یک بهعلاوهی یکانی استفاده میکند |
construct:underscored-number |
از عددی استفاده میکند که زیرخطها جداکنندهی ارقامش هستند |
construct:union-type |
یک نوع اجتماع تعریف میکند |
construct:user-defined-exception |
یک استثنای سفارشی و کاربرتعریفشده تعریف میکند |
construct:ushort |
از یک عدد صحیح ۱۶ بیتی بدون علامت استفاده میکند |
construct:using-directive |
از کد یک فایل دیگر استفاده میکند |
construct:using-statement |
یک مقدار را با دستور using اختصاص میدهد و آزاد میکند |
construct:varargs |
پارامتری تعریف میکند که پاس دادن صفر یا چند مقدار را پشتیبانی میکند |
construct:variable |
متغیری اعلان میکند |
construct:vector |
از یک بردار استفاده میکند |
construct:verbatim-string |
از یک رشتهی خام استفاده میکند (بدون دنبالههای فرار) |
construct:virtual-method |
یک متد مجازی تعریف میکند |
construct:visibility-modifiers |
میزان دیدهشدن یک سازه را مشخص میکند (مثلاً یک متد یا کلاس) |
construct:while-loop |
از یک حلقهی while استفاده میکند |
construct:yield |
در یک حلقه، مقداری را بهصورت تنبل تولید میکند |
از آنجا که این دسته مخصوص یک زبان است، تگ پرکاربرد مشخصی در اینجا وجود ندارد.