Behúzási stílus

A számítástechnikában a behúzás fülek vagy szóközök hozzáadása a szöveges fájlban . A behúzási stílus leírja a programozók különféle módjait, hogy kiemeljék a kódblokkot.

A behúzást a kódblokkok elrendezésének módja határozza meg, de különösen az egyes szinteken használt szóközök száma.

Lehet, hogy a behúzás nem csak esztétikus. Bizonyos nyelvek esetében kötelező érvényes blokkok vagy sorok kialakításához (például Occam , Fortran vagy Python ).

Behúzási stílusok a C-ben

K&R stílus

Ez az a stílus, amelyet Brian Kernighan és Dennis Ritchie írtak a példákra a C nyelv című könyvükben , amely az első könyv a C nyelvről .

void a_function(void) { if (x == y) { something1(); something2(); } else { somethingelse1(); somethingelse2(); } finalthing(); }

Ezért egy függvény nyitó zárójelét a deklaratív részt követő vonalon helyezi el, ellentétben más zárójelekkel (pl. Vezérlőszerkezetek), amelyek ugyanazon a soron maradnak, mint a deklaráció.

Változatok

Ennek a stílusnak sok változata van. Viszonylag gyakori variáció, hogy a függvények nyitó zárójelét a deklaratív résszel egy vonalba helyezzük; a C-n kívül ez az egyik olyan alkalmazás, amelyet a Sun javasol például a Java nyelvéhez.

Egy másik gyakran előforduló árnyalat az else kulcsszó elhelyezéséből adódhat . Néhány fejlesztő inkább teljes vonalon pozícionálja.

Allman stílus

Az Eric Allman után elnevezett stílus a nyitó és záró zárójel szigorú összehangolását követi, az alábbi példához hasonlóan:

void a_function(void) { if (x == y) { something1(); something2(); } else { somethingelse1(); somethingelse2(); } finalthing(); }

Ennek a stílusnak az a fő előnye, hogy vizuálisan nagyon könnyen észreveheti a merevítők elmulasztását. Ezenkívül egyértelműen elkülönül az egyes kódblokkok tartalma, ami javítja az olvashatóságot. Ezt nagyobb számú sor árán érhetjük el, mint más stílusoknál. Nagyon közel áll a "Fehérmívesek" stílushoz.

Fehérmíves stílus

if (x == y) { something1(); something2(); } else { somethingelse1(); somethingelse2(); } finalthing();

Különböző felhasználási módok vannak a fogszabályozók elhelyezéséhez a funkciókhoz; Egyes szerzők behúzják a testet és a zárójeleket a deklaratív részhez, mások a testet behúzják a zárójelek behúzása nélkül, mások pedig nem a testet vagy a zárójeleket.

GNU stílus

A GNU hivatalos ajánlása a programozók számára, hogy a függvény visszatérési típusát külön sorra tegyék, így a függvény neve igazodik az első oszlophoz. Hasonlóképpen, a függvényhívásokhoz használt zárójeleket szóköznek kell megelőznie.

Ezek a megfontolások azonban nem korlátozódnak a GNU stílusra, és nem ritka, hogy ezeket a jelöléseket más behúzási stílusokkal találkoznánk. Például a BSD kernelek kódjának bemutatását szabályozó KNF megköveteli, hogy a függvény visszatérési típusát egyedül kell elhelyezni az ennek nevét megelőző sorban.

void a_function (void) { if (x == y) { something1 (); something2 (); } else { somethingelse1 (); somethingelse2 (); } finalthing (); }

Pico stílus

if (x == y) { something1 (); something2 (); } else { somethingelse1 (); somethingelse2 (); } finalthing ();

Ez a stílus a pikó nyelvből származik .

Behúzási stílusok C ++ nyelven

Bjarne Stroustrup által használt stílus

Ezt a stílust alkalmazza Bjarne Stroustrup , a C ++ nyelv feltalálója, hogy a C ++ nyelvet leíró könyvében példákat írjon.

Ez hasonló a K&R stílus variációjához, kiterjesztve a C ++ új funkcióira.

Stílusok Ada, C ++, Java, PHP ...

Ennek a műfajnak a magas szintű, Algol (1960) eredetű nyelvei hasonló stílust alkalmaznak.

A Turbo-Pascal, az 1983-tól napjainkig terjedő de facto Pascal-szabvány (Delphi) hatékonyabb és olvashatóbb kódolási stílust vezetett be két behúzott karakterrel, amelyet más nyelveken, például a PHP-ben vagy az Ada-ban széles körben használnak. (A GetTime.PAS szabványos egység TimeInterrupt programja)

begin ah := $2c; {initialize correct registers} with recpack do begin ax := ah shl 8 + al; end; intr($21,recpack); {call interrupt} with recpack do begin str(cx shr 8,hour); {convert to string} str(cx mod 256,min); { " } str(dx shr 8,sec); { " } end; time := hour+':'+min+':'+sec; end;

Más stílusok

Occam

IF sgf.res <> 0 SKIP TRUE IF compare.strings (ThfareKey, "99999999") <> 0 SEQ ThfareKeyInt := AtoI (ThfareKey) ThfareOffsets [ThfareKeyInt] := Offset TRUE SKIP

Az Occam ez a bemélyedés, amely hordozza az információt tartozó blokk, amely elkerüli az építési blokk ( „kezdődik”, „akkor”, „end”). A behúzás két karakter hosszú. Fent a TRUE egyenértékű az "if" vagy "case" konstrukciók "default" vagy "else" értékével (a "kapcsoló" a C-ben).

FORTRAN V.

subroutine ch_cap ( c ) implicit none character c if ( 97 <= itemp .and. itemp <= 122 ) then c = char ( itemp - 32 ) end if return end

Ez a stílus nagyon közel áll a fenti "Turbo Pascal származék" típushoz. Ne feledje, hogy a standard FORTRAN-ban elméletileg minden sor első 5 karakterét fenntartják, akár megjegyzésekhez (az első oszlopban "C"), akár sorszámokhoz (címkékhez), a Hollerith lyukasztók (1890) formátuma szerint 80-mal. oszlopok (@IBM 1926).

Selypít

(defun compall () (do-symbols (s) (when (fboundp s) (unless (compiled-function-p (symbol-function s)) (print s) (compile s)))))

Az ajánlott behúzás 2 karakter, kivéve néhány speciális alakot, és elkerüli a blokkszerkezeteket ("kezdet", "majd", "más", "vég"). A zárójelek csoportosítva vannak, és nem függőlegesen vannak igazítva a megfelelő nyitott zárójelekkel. A Lisp programok megírását elősegíti a szerkesztők használata, amelyek lehetővé teszik a megfelelő nyitó / záró zárójelpárok kiemelését, és lehetővé teszik a kód automatikus behúzását a szerkezetnek megfelelően.


Lásd is

Külső linkek

Hivatkozások

  1. (in) "  A Java programozási nyelv kódkonvenciói  "
  2. (in) formázása a forráskódban - A GNU Coding Standards
  3. (fr) szabvány és írási útmutató az Ada fejlesztéseihez, JP Germe, 3ip vállalat, 1989
  4. (en) Turbo Pascal 3.0 (1986)