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 ).
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áltozatokEnnek 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.
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.
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.
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 (); }Ez a stílus a pikó nyelvből származik .
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.
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;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).
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).
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.