توضیح یا کامِنت (به انگلیسی: Comment) متنی جهت گزارمان در کد منبع است که اجرا نمیشود. توضیحها متنهای جهت افزایش خوانایی کد منبع هستند که توسط مفسرها و کامپایلرها اجرا نمیشوند.[1][2]
تعریف
متنهایی هستند که برنامه نویسان در میان کدها مینویسند، اما آن متنها به همراه کد اجرا نخواهند شد و تنها در میان کدها دیده میشوند و در خروجی برنامه نیز هیچ اثری از آنها نیست. هدف از استفاده از توضیحات، بالابردن خوانایی و تشخیص نقش کدهای نوشته شده توسط برنامهنویس، برای دیگران است.[3]
کاربرد
هنگامی کد منبع از چندین خط تشکیل شده باشد یا اینکه زمان زیادی از کدنویسی آن پروژه گذشته باشد، خود به خود برنامهنویس ساختار کدنویسی خود را فراموش میکند. در این شرایط، اگر برنامهنویس، توضیحاتی در مورد ساختار و عملکرد کدها نوشته باشد، تنها با خواندن آن توضیحات، میتواند دوباره ساختار را به راحتی درک کند یا همچنین زمانی که برنامهنویس قصد دارد کدهای خود را در اختیار یک برنامهنویس دیگر قرار دهد، با نوشتن توضیحات در کدهایش، درک کدها را برای برنامهنویس دیگر بسیار سادهتر میکند.
انواع
در زبانهای سی، سی++، جاوا، سی شارپ و جاوااسکریپت توضیحات را میتوانیم به دو صورت تک خطی و چند خطی بنویسیم.
- توضیحات تک خطی (Inline comments): میتوان توضیحاتی در یک خط نوشت.
Symbol | Languages |
---|---|
C |
Fortran I to Fortran 77 (C in column 1) |
REM |
BASIC, Batch files |
:: |
Batch files, COMMAND.COM, cmd.exe |
NB. |
J; from the (historically) common abbreviation Nota bene, the Latin for "note well". |
⍝ |
APL; the mnemonic is the glyph (jot overstruck with shoe-down) resembles a desk lamp, and hence "illuminates" the foregoing. |
# |
Bourne shell and other UNIX shells, Cobra, Perl, Python, Ruby, Seed7, Windows PowerShell, PHP, R, Make, Maple, Elixir, Julia, Nim[4] |
% |
TeX, Prolog, MATLAB,[5] Erlang, S-Lang, Visual Prolog, PostScript |
// |
ActionScript, C (C99), C++, C#, D, F#, Go, Java, JavaScript, Kotlin, Object Pascal (Delphi), Objective-C, PHP, Rust, Scala, SASS, Swift, Xojo |
' |
Monkey, Visual Basic, VBScript, Small Basic, Gambas, Xojo |
! |
Fortran, Basic Plus, Inform, Pick Basic |
; |
Assembly x86, AutoHotkey, AutoIt, Lisp, Common Lisp, Clojure, Rebol, Red, Scheme |
-- |
Euphoria, Haskell, SQL, Ada, AppleScript, Eiffel, Lua, VHDL, SGML, PureScript, Elm |
* |
Assembler S/360 (* in column 1), COBOL I to COBOL 85, PAW, Fortran IV to Fortran 77 (* in column 1), Pick Basic, GAMS (* in column 1) |
|| |
Curl |
" |
Vimscript, ABAP |
\ |
Forth |
*> |
COBOL 90 |
- توضیحات چندخطی (Block comments): میتوان توضیحاتی در چند خط نوشت.
Symbol | Languages |
---|---|
comment ~ ; |
ALGOL 60, SIMULA |
¢ ~ ¢ ,
|
ALGOL 68[6][7] |
/* ~ */ |
ActionScript, AutoHotkey, C, C++, C#, D,[8] Go, Java, JavaScript, kotlin, Objective-C, PHP, PL/I, Prolog, Rexx, Rust (can be nested), Scala (can be nested), SAS, SASS, SQL, Swift (can be nested), Visual Prolog, CSS |
#cs ~ #ce |
AutoIt[9] |
/+ ~ +/ |
D (can be nested)[8] |
/# ~ #/ |
Cobra (can be nested) |
<# ~ #> |
Powershell |
<!-- ~ --> |
HTML, XML |
=begin ~ =cut |
Perl |
#`( ~ ) |
Raku (bracketing characters can be (), <>, {}, [], any Unicode characters with BiDi mirrorings, or Unicode characters with Ps/Pe/Pi/Pf properties) |
=begin ~ =end |
Ruby |
#<TAG> ~ #</TAG> , #stop ~ EOF ,
|
S-Lang[10] |
{- ~ -} |
هسکل (can be nested) |
(* ~ *) |
Delphi, ML, Mathematica, Object Pascal, Pascal, Seed7, Applescript, OCaml (can be nested), Standard ML (can be nested), Maple, Newspeak, F# |
{ ~ } |
Delphi, Object Pascal, Pascal, Red |
{# ~ #} |
Nunjucks, Twig |
{{! ~ }} |
Mustache, Handlebars |
{{!-- ~ --}} |
Handlebars (cannot be nested, but may contain {{ and }} ) |
|# ~ #| |
Curl |
%{ ~ %} |
MATLAB[11] (the symbols must be in a separate line) |
#| ~ |# |
Lisp, Scheme, Racket (can be nested in all three). |
#= ~ =# |
جولیا[12] |
#[ ~ ]# |
Nim[13] |
--[[ ~ ]] ,
|
Lua (brackets can have any number of matching = characters; can be nested within non-matching delimiters) |
" ~ " |
اسمالتاک |
(comment ~ ) |
کلوژر |
مثال
برای مثال کد منبع زبان جاوااسکریپت در زیر، از دو نوع توضیحات استفاده کردهاست:
/*
پروژه
اول من
*/
document.write("Hello, World!"); // در خروجی متن داخل دابل کوتیشن چاپ میشود
جستارهای وابسته
منابع
Wikiwand in your browser!
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.