Einzug-Stil

In der Computerprogrammierung ist ein Einzug-Stil eine Tagung, die Einrückung von Blöcken des Codes regelnd, um die Struktur des Programms zu befördern. Dieser Artikel richtet größtenteils die C Programmiersprache und seine Nachkommen, aber kann sein (und ist oft) angewandt auf die meisten anderen Programmiersprachen (besonders diejenigen in der lockigen Klammer-Familie). Einzug-Stil ist gerade ein Aspekt, Stil zu programmieren.

Einrückung ist nicht eine Voraussetzung von den meisten Programmiersprachen, wo sie als sekundäre Notation verwendet wird. Eher, Programmierer-Einzug, um die Struktur ihrer Programme menschlichen Lesern besser zu befördern. Insbesondere Einrückung wird verwendet, um die Beziehung zwischen Kontrollfluss-Konstruktionen wie Bedingungen oder Schleifen und Code zu zeigen, der innerhalb und außerhalb ihrer enthalten ist. Jedoch verwenden einige Programmiersprachen (wie Python und Occam) die Einrückung, um die Struktur zu bestimmen, anstatt geschweifte Klammern oder Schlüsselwörter zu verwenden.

Die Größe des Einzugs ist gewöhnlich des Stils unabhängig. Viele frühe Programme haben Etikett-Charaktere für die Einrückung für die Einfachheit verwendet und auf der Quelldateigröße zu sparen. Redakteure von Unix sehen allgemein Etikette als gleichwertig zu acht Charakteren an, während Macintosh und Windows-Umgebungen von Microsoft sie auf vier setzen würden, Verwirrung schaffend, als Code hin und her übertragen wurde. Moderne Programmierredakteure sind jetzt häufig im Stande, willkürliche Einrückungsgrößen zu setzen, und werden die passende Kombination von Räumen und Etiketten einfügen. Für den Rubin, viele Schale-Programmiersprachen und einige Formen der HTML-Formatierung, werden zwei Räume pro Einzug-Niveau allgemein verwendet.

Das Problem, harte Etikette oder Räume zu verwenden, ist eine andauernde Debatte in der Programmiergemeinschaft. Einige Programmierer wie Gefühl von Jamie Zawinski, dass Räume statt Etikette Quer-Plattform-Funktionalität vergrößern. Andere, wie die Schriftsteller von WordPress, der Standards Codiert, glauben das Gegenteil, dass harte Etikette Quer-Plattform-Funktionalität vergrößern.

Es gibt mehrere Computerprogramme, die automatisch Einzug-Stile sowie die Länge von Etiketten korrigieren. Ein berühmter unter ihnen, ist ein mit vielen Unix ähnlichen Betriebssystemen eingeschlossenes Programm. Diese Programme arbeiten am besten für diejenigen, die einen Einzug-Stil in der Nähe davon verwenden, hat als "richtig" durch ihre Programmierer betrachtet; diejenigen, die andere Stile verwenden, werden wahrscheinlicher frustriert werden. Außerdem ist Einzug nur einmal in den letzten 6 Jahren aktualisiert worden und arbeitet gut entweder mit C ++ oder mit GNU-Erweiterungen auf C nicht.

K&R Stil

K&R wird Stil, so genannt, weil es in Kernighan und dem Buch von Ritchie Die C Programmiersprache verwendet wurde, in C allgemein verwendet. Es ist für C ++, C#, und andere weniger üblich.

Wenn

sie an K&R klebt, hat jede Funktion seine öffnende geschweifte Klammer an der folgenden Linie auf demselben Einrückungsniveau wie sein Kopfball, die Behauptungen innerhalb der geschweiften Klammern werden eingedrückt, und die geschweifte Schlussklammer am Ende ist auf demselben Einrückungsniveau wie der Kopfball der Funktion an einer Linie seines eigenen. Die Blöcke innerhalb einer Funktion haben jedoch ihre öffnenden geschweiften Klammern an derselben Linie wie ihre jeweiligen Kontrollbehauptungen; geschweifte Schlussklammern bleiben in einer Linie ihres eigenen, wenn nicht gefolgt, von sonst oder während Schlüsselwort.

In diesem Stil kann eine Kontrollbehauptung mit nur einer einzelnen Behauptung in seinem Spielraum die geschweiften Klammern weglassen. Die C Programmiersprache kennzeichnet das als fruchtbarer Boden für Programmfehler (logische Fehler programmierend), und entmutigt ihn.

int Hauptsache (interne Nummer argc, Rotforelle *argv [])

{\

...

während (x == y) {\

etwas ;

somethingelse ;

wenn (some_error) {\

/* die lockigen geschweiften Klammern um diesen Codeblock konnten * / weggelassen werden

do_correct ;

} sonst

continue_as_usual ;

}\

finalthing ;

...}\</Quelle>

In alten Versionen der C Programmiersprache wurden die Funktionen jedoch ausgesprochen geklammert. Die öffnende geschweifte Funktionsklammer einer Funktion wurde auf der Linie im Anschluss an nach der Behauptungsabteilung und an demselben Einrückungsniveau wie die Behauptung (Kopfball der Funktion) gelegt. Das ist, weil in der ursprünglichen c Sprache Argument-Typen auf der nachfolgenden Linie erklärt werden mussten (d. h., gerade nach dem Kopfball der Funktion), wohingegen, als keine Argumente notwendig waren, die öffnende geschweifte Klammer in derselben Linie mit der Funktionsbehauptung nicht erscheinen würde. Die Öffnung macht sich auf Funktionsbehauptungen gefasst war eine Ausnahme zur zurzeit grundlegenden Regel feststellend, dass die Behauptungen und Blöcke einer Funktion alle in den geschweiften Funktionsklammern eingeschlossen werden.

/* Ursprünglicher pre-ISO C Stil ohne Funktionsprototypen * /

int Hauptsache (argc, argv)

interne Nummer argc;

Rotforelle *argv [];

{\ ...}\</Quelle>

Variante: 1TBS

Verfechter dieses Stils kennzeichnen es manchmal als "ein wahrer Stil der geschweiften Klammer" (abgekürzt als 1TBS oder OTBS) wegen des Präzedenzfalls, der durch C gesetzt ist (obwohl, wie man bekannt hat, Verfechter anderer Stile ähnlich starke Sprache verwendet haben). Der Quellcode des Kerns von Unix wurde in diesem Stil geschrieben, wie der Kern von Linux ist.

In diesem Stil sind die Konstruktionen, die Einfügungen von neuen Codelinien erlauben, auf getrennten Linien, und Konstruktionen, die Einfügungen verbieten, sind auf einer einzelnen Linie. Dieser Grundsatz wird durch das Klammern von jedem verstärkt, wenn, sonst, während, usw. — sogar einzeiliger conditionals — so dass die Einfügung einer neuen Linie des Codes überall immer "sicher" ist (d. h. wird solch eine Einfügung den Fluss der Ausführung mit der Quellcodeeinrückung nicht übereinstimmen lassen).

Vorteile dieses Stils bestehen darin, dass die beginnende geschweifte Klammer keine Extralinie allein verlangt; und die endende geschweifte Klammer stellt sich mit der Behauptung auf, der sie begrifflich gehört. Ein Nachteil dieses Stils ist, dass die endende geschweifte Klammer eines Blocks eine komplette Linie allein aufnimmt, die darin teilweise aufgelöst werden kann, wenn/sonst Blöcke und Blöcke/während:

//...

wenn (x

Während dieser Stil es schwierig machen kann, jeden Quellcode für die öffnende geschweifte Klammer eines Blocks zu scannen, ist es nicht gewöhnlich die öffnende geschweifte Klammer selbst, die, aber eher die Steuern-Behauptung interessant ist, die den Block eingeführt hat. Es ist leicht, den Anfang des Blocks durch das Auffinden der ersten Linie über der geschweiften Schlussklammer zu finden, die zu demselben Niveau eingedrückt wird.

Während Java häufig in Allman oder anderen Stilen geschrieben wird, verwendet ein bedeutender Körper des javanischen Codes eine geringe Variante K&R Stil, in dem die öffnende geschweifte Klammer auf derselben Linie wie die Klasse oder Methode-Behauptung größtenteils ist, weil die ursprünglichen Stil-Führer der Sonne das K&R Variante verwendet haben, und infolgedessen der grösste Teil des Standardquellcodes für die javanische API in diesem Stil geschrieben wird. Es ist auch ein populärer Einzug-Stil für ActionScript und JavaScript zusammen mit dem Stil von Allman.

Es sollte bemerkt werden, dass Die C Programmiersprache diesen Stil nicht ausführlich angibt, obwohl ihm durchweg überall im Buch gefolgt wird. Des Zeichens aus dem Buch:

Die Position von geschweiften Klammern ist weniger

wichtig, obwohl Leute leidenschaftlichen Glauben halten. Wir haben einen von mehreren populären gewählt

Stile. Picken Sie einen Stil auf, der Ihnen anpasst, dann verwenden Sie ihn durchweg.

Stil von Allman

Der Stil von Allman wird nach Eric Allman genannt. Es ist "ANSI Stil" für seinen Gebrauch in Dokumenten genannt geworden, die den ANSI C Standard beschreiben (später angenommen als der ISO C internationaler Standard), obwohl tatsächlich jene Dokumente K&R Stil verwenden. Es ist auch manchmal als "BSD Stil" bekannt, seitdem Allman viele der Dienstprogramme für BSD Unix geschrieben hat (obwohl das mit dem verschiedenen "BSD KNF Stil" nicht verwirrt sein sollte; sieh unten).

Dieser Stil stellt die geschweifte Klammer, die mit einer Kontrollbehauptung auf der folgenden Linie vereinigt ist, die zu demselben Niveau wie die Kontrollbehauptung eingedrückt ist. Behauptungen innerhalb der geschweiften Klammern werden zum folgenden Niveau eingedrückt.

während (x == y)

{\

etwas ;

somethingelse ;

}\

finalthing ;

</Quelle>

Dieser Stil ist der durch die Programmiersprache von Pascal verwendeten Standardeinrückung ähnlich, und unterhandeln Sie-SQL, wo die geschweiften Klammern zu und Schlüsselwörter gleichwertig sind.

Vorteile dieses Stils bestehen darin, dass der ausgezackte Code klar abgesondert von gesetzt wird, Behauptung durch Linien enthaltend, die fast völlig whitespace sind, Lesbarkeit verbessernd, und sich die geschweifte Schlussklammer in derselben Säule wie die öffnende geschweifte Klammer aufstellt, es leicht machend, das Zusammenbringen von geschweiften Klammern zu finden. Zusätzlich skizziert der blockierende Stil den wirklichen Block des Codes von der verbundenen Kontrollbehauptung selbst. Die Kontrollbehauptung kommentierend, die Kontrollbehauptung völlig entfernend, werden Wiederfactoring oder das Entfernen des Blocks des Codes mit geringerer Wahrscheinlichkeit Syntax-Fehler wegen des Baumelns oder der fehlenden Klammern einführen.

Zum Beispiel ist der folgende noch syntaktisch richtig:

//während (x == y)

{\ etwas ; somethingelse ;}\</Quelle>

Wie das ist:

//für (interne Nummer i=0; ich

Ein Nachteil dieses Stils ist, dass jede der geschweiften Umgeben-Klammern eine komplette Linie allein besetzt, ohne jeden wirklichen Code hinzuzufügen. Das war einmal eine wichtige Rücksicht, als Programme gewöhnlich auf Terminals editiert wurden, die nur 24 Linien gezeigt haben, aber mit den größeren Entschlossenheiten von modernen Anzeigen weniger bedeutend sind. Da die Motivation dieses Stils Codelesbarkeit durch das Sehtrennen von Blöcken von ihren Kontrollbehauptungen fördern soll, sind Schirm-Immobilien nur eine sekundäre Sorge.

Dieser Stil wird standardmäßig in Microsoft Visual Studio 2005 und späteren Versionen verwendet. Microsoft hat seitdem den Stil überall in ganzer seiner Dokumentation (MSDN) und inneren Programmiermethodiken für seine C-basierten Sprachen, nämlich C ++ und C#. angenommen

BSD KNF Stil

Auch bekannt als Normaler Kernform-Stil, das ist zurzeit die Form des grössten Teiles des Codes, der im Softwarevertrieb von Berkeley Betriebssysteme verwendet ist. Obwohl größtenteils beabsichtigt, für den Kerncode wird es ebenso im Userland-Code weit verwendet. Es ist im Wesentlichen eine gründlich dokumentierte Variante K&R Stil, wie verwendet, in der Glockenlaboratorium-Version 6 & 7 UNIX Quellcode.

Der harte Tabellarisierer (ts in vi) wird an 8 Säulen behalten, während ein weicher Tabellarisierer häufig als ein Helfer ebenso (kurzwellig in vi) definiert wird, und an 4 untergegangen ist.

Die harten Tabellarisierer sind an Einzug-Codeblöcke gewöhnt, während ein weicher Tabellarisierer (4 Räume) des zusätzlichen Einzugs für alle ständigen Linien verwendet wird, die über vielfache Linien gespalten werden müssen.

Außerdem verwenden Funktionsanrufe keinen Raum vor der Parenthese, obwohl Eingeborener-Behauptungen der c Sprache solcher als, und tun (im Fall, wo mit parens verwendet wird). Funktionen, die keine lokalen Variablen in ihrem Block auf höchster Ebene erklären, sollten auch eine leere Linie nach ihrer öffnenden geschweiften Block-Klammer verlassen.

Hier folgen Sie einigen Proben:

während (x == y) {\

etwas ; somethingelse ;}\finalthing ;</Quelle>

wenn (Daten! = UNGÜLTIG && res> 0) {\

wenn (JS_DefineProperty (cx, o, "Daten",

STRING_TO_JSVAL (JS_NewStringCopyN (cx, Daten, res)),

UNGÜLTIG, UNGÜLTIG, JSPROP_ENUMERATE)! = 0) {\

QUEUE_EXCEPTION ("Innerer Fehler!");

goto irren sich;

}\

PQfreemem (Daten);

} sonst {\

wenn (JS_DefineProperty (cx, o, "Daten", OBJECT_TO_JSVAL (UNGÜLTIG),

UNGÜLTIG, UNGÜLTIG, JSPROP_ENUMERATE)! = 0) {\ QUEUE_EXCEPTION ("Innerer Fehler!"); goto irren sich; }\}\</Quelle>

statischer JSBool

pgresult_constructor (JSContext *cx, JSObject *obj, uintN argc,

jsval *argv, jsval *rval)

{\

QUEUE_EXCEPTION ("PGresult Klasse nicht Benutzer-Instantiable");

kehren Sie (JS_FALSE) zurück;

}\</Quelle>

Stil von Whitesmiths

Der Whitesmiths Stil, auch genannt Stil von Wishart in einem kleineren Ausmaß, ist heute weniger üblich als die vorherigen drei. Es wurde in der Dokumentation für den ersten kommerziellen C Bearbeiter, den Whitesmiths Bearbeiter ursprünglich verwendet. Es war auch in den frühen Tagen von Windows populär, seitdem es in drei einflussreichen Windows-Programmierbüchern, dem Handbuch des Programmierers zu Windows von Durant, Carlson & Yao verwendet wurde, Windows von Petzold und Macht-Programmiertechniken des Windows 3.0 von Norton & Yao Programmierend. Symbian Fundament setzt fort, das als der empfohlene stärkende Stil für Symbian OS C ++ Mobiltelefonanwendungen zu verteidigen.

Dieser Stil stellt die geschweifte Klammer, die mit einer Kontrollbehauptung auf der folgenden Linie vereinigt ist, eingedrückt. Behauptungen innerhalb der geschweiften Klammern werden zu demselben Niveau wie die geschweiften Klammern eingedrückt.

während (x == y)

{\

etwas ; somethingelse ; }\finalthing ;</Quelle>

Die Vorteile dieses Stils sind denjenigen des Stils von Allman darin ähnlich Blöcke werden klar abgesondert von Kontrollbehauptungen gesetzt. Jedoch mit dem Stil von Whitesmiths wird der Block noch mit seiner Kontrollbehauptung visuell verbunden, anstatt wie ein Block ohne Beziehung des durch whitespace umgebenen Codes auszusehen. Ein anderer Vorteil besteht darin, dass die Anordnung der geschweiften Klammern mit dem Block die Tatsache betont, dass der komplette Block begrifflich (sowie programmatisch) eine einzelne zusammengesetzte Behauptung ist. Außerdem betont das Eindrücken der geschweiften Klammern, dass sie der Kontrollbehauptung untergeordnet sind.

Ein angedeuteter Nachteil, wenn dieser Stil darin besteht, dass die endende geschweifte Klammer nicht mehr mit der Behauptung ihn begrifflich aufstellt, gehört dem. Jedoch gehört die geschweifte Schlussklammer der öffnenden geschweiften Klammer und nicht der Kontrollbehauptung.

Zusätzlich zeigt dieser stärkende Stil den logischen Fluss des Codes besser, in dem in der Folge durchgeführte Behauptungen auf demselben Einrückungsniveau sind, und Behauptungen, die von anderen Behauptungen abhängen, unter ihnen eingedrückt werden. (Das interpretiert die geschweiften Klammern als begin-block/end-block Anschreiber, und so sollte Beginnen-Block unter der Behauptung eingedrückt werden, seine Ausführung kontrollierend).

Ein Beispiel:

wenn (Daten! = UNGÜLTIG && res> 0)

{\

wenn (! JS_DefineProperty (cx, o, "Daten", STRING_TO_JSVAL (JS_NewStringCopyN (cx, Daten, res)),

UNGÜLTIG, UNGÜLTIG, JSPROP_ENUMERATE))

{\

QUEUE_EXCEPTION ("Innerer Fehler!");

goto irren sich;

}\

PQfreemem (Daten);

}\

sonst, wenn (! JS_DefineProperty (cx, o, "Daten", OBJECT_TO_JSVAL (UNGÜLTIG),

UNGÜLTIG, UNGÜLTIG, JSPROP_ENUMERATE))

{\

QUEUE_EXCEPTION ("Innerer Fehler!");

goto irren sich;

}\</Quelle>

Jedoch, wenn man die Formgebungsregel annimmt, dass geschweifte Klammern jedem Niveau 'des Spielraums' zur Verfügung gestellt werden, dann konnte der obengenannte Code geschrieben werden, um 'sonst wenn' mit einem getrennten 'wenn' im Rahmen klar roped-von 'sonst' ein Teil der Behauptung zu ersetzen.

wenn (Daten! = UNGÜLTIG && res> 0) {\ wenn (! JS_DefineProperty (cx, o, "Daten", STRING_TO_JSVAL (JS_NewStringCopyN (cx, Daten, res)), UNGÜLTIG, UNGÜLTIG, JSPROP_ENUMERATE)) {\ QUEUE_EXCEPTION ("Innerer Fehler!"); goto irren sich; }\ PQfreemem (Daten); }\

sonst

{\

wenn (! JS_DefineProperty (cx, o, "Daten", OBJECT_TO_JSVAL (UNGÜLTIG),

UNGÜLTIG, UNGÜLTIG, JSPROP_ENUMERATE)) {\ QUEUE_EXCEPTION ("Innerer Fehler!"); goto irren sich; }\ }\</Quelle>

Im Anschluss an die Strategie, die oben gezeigt ist, würden einige behaupten, dass der Code jedoch von Natur aus lesbarer ist, entstehen Probleme in der Lesbarkeit, weil mehr Bedingungen hinzugefügt, in diesem Pseudocode gezeigt werden (obwohl gewöhnlich in diesem Fall eine Schalter-Behauptung genügen würde)

sonst {\

wenn (ist Zeug wahr)

, {\

Stopfen Sie wirklich voll

}\

sonst

{\

wenn (ist anderes Zeug wahr)

,

{\

Tun Sie anderes Zeug

}\

sonst

{\

wenn (ist Zeug noch immer nicht wahr)

,

{\

Tun Sie noch mehr anderes Zeug

}\

}\ }\ }\</Quelle>

GNU-Stil

Wie die Stile von Allman und Whitesmiths stellt GNU-Stil geschweifte Klammern auf eine Linie durch sich, eingedrückt durch 2 Räume außer, wenn, eine Funktionsdefinition öffnend, wo sie nicht eingedrückt werden. In jedem Fall wird der enthaltene Code durch 2 Räume von den geschweiften Klammern eingedrückt.

Verbreitet von Richard Stallman kann das Lay-Out unter Einfluss seines Hintergrunds sein, Lispeln-Code zu schreiben. Im Lispeln ist die Entsprechung zu einem Block (ein progn) eine Datenentität der ersten Klasse und das Geben davon sein eigenes Einzug-Niveau hilft, das zu betonen, wohingegen in C ein Block gerade Syntax ist. Obwohl nicht direkt verbunden mit der Einrückung GNU, das Stil auch codiert, einen Raum vor der eingeklammerten Liste von Argumenten für eine Funktion einschließt.

statische Rotforelle *

concat (Rotforelle *s1, Rotforelle *s2)

{\

während (x == y)

{\

etwas ;

somethingelse ;

}\

finalthing ;

}\</Quelle>

Dieser Stil verbindet die Vorteile von Allman und Whitesmiths, dadurch den möglichen Nachteil von Whitesmiths von geschweiften Klammern entfernend, die nicht vom Block hervortreten. Ein Nachteil ist, dass sich die endende geschweifte Klammer nicht mehr mit der Behauptung aufstellt, der sie begrifflich gehört.

GNU, das Standards Codiert, empfiehlt diesen Stil, und fast alle maintainers der GNU-Projektsoftware verwenden es, aber es hat außerhalb der GNU-Gemeinschaft selten gesehen.

Das GNU Emacs Textaufbereiter und der GNU-Systemeinzug-Befehl wird Code gemäß diesem Stil standardmäßig wiederformatieren. Diejenigen, die GNU Emacs oder ähnlich ausziehbare/anpassbare Redakteure nicht verwenden, können finden, dass die automatischen bestellenden Einstellungen ihres Redakteurs für diesen Stil unnützlich sind. Jedoch sind viele Redakteure, die zum KNF Stil im Verzug sind, gut dem GNU-Stil gewachsen, wenn die Etikett-Breite auf 2 Räume gesetzt wird; ebenfalls passt sich GNU Emacs gut an den KNF Stil gerade an, indem es die Etikett-Breite auf 8 Räume setzt. In beiden Fällen wird automatische Wiederformatierung den ursprünglichen Abstand zerstören, aber automatische Linieneinrückung wird richtig arbeiten.

Stil von Horstmann

Die 1997-Ausgabe der Computerwissenschaft von Konzepten mit C ++ Hauptsache durch Cay S. Horstmann passt Allman durch das Stellen der ersten Behauptung eines Blocks auf derselben Linie wie die öffnende geschweifte Klammer an.

während (x == y)

{etwas ;

somethingelse ;

//...

wenn (x

Dieser Stil verbindet die Vorteile von Allman durch das Halten der vertikalen Anordnung der geschweiften Klammern für die Lesbarkeit und leichte Identifizierung von Blöcken, mit dem Sparen einer Linie K&R Stil. Jedoch verwendet die 2003-Ausgabe jetzt Stil von Allman überall.

http://www.horstmann.com/bigcpp/styleguide.html

Stil von Pico

Der Stil verwendet meistens auf der Programmiersprache von Pico durch seine Entwerfer ist von den oben erwähnten Stilen verschieden. Der Mangel an Rückbehauptungen und der Tatsache, dass Strichpunkte in Pico als Behauptungsseparatoren statt terminators verwendet werden, führt zur folgenden Syntax:

Zeug (n):

{x: 3 * n;

y: doStuff (x);

y + x }\

</pre>

Die Vorteile und Nachteile sind denjenigen von sparenden Schirm-Immobilien mit K&R Stil ähnlich. Ein zusätzlicher Vorteil besteht darin, dass der Anfang und das Schließen von geschweiften Klammern in der Anwendung entsprechen (beider Aktienraum mit einer Linie des Codes), im Vergleich mit K&R Stil, wo eine geschweifte Klammer Raum mit einer Linie des Codes teilt, und eine geschweifte Klammer eine Linie zu sich hat.

Schlagzeile-Stil

Der Schlagzeile-Stil kann Sehabtastung leichter für einige machen, da die "Kopfbälle" jedes Blocks das einzige Ding extented an diesem Niveau sind (die Theorie, die ist, dass die Schlusskontrolle des vorherigen Blocks den Kopfball des folgenden Blocks in K&R und Stile von Allman stört). In diesem Stil, der zu Whitesmiths als K&R ist, ist zu Allman, die Schlusskontrolle wird als der letzte Artikel in der Liste eingedrückt (und verliert so passend Hervorspringen).

function1 {\

dostuff

stopfen Sie wirklich mehr voll

}\

function2 {\

usw.

}\</Quelle>

oder, auf einer Preiserhöhungssprache...

mehr Zeug

</td>

</tr>

</Tisch>

</Tisch></Quelle>

Lispeln-Stil

Ein Programmierer kann sogar gehen, so weit man Schlussklammern in die letzte Linie eines Blocks einfügt. Dieser Stil macht Einrückung die einzige Weise, Blöcke des Codes zu unterscheiden, aber ist im Vorteil, keine uninformativen Linien zu enthalten. Das konnte den Lispeln-Stil leicht genannt werden (weil dieser Stil im Lispeln-Code sehr üblich ist) oder der Pythonschlange-Stil (Pythonschlange keine Klammern hat, aber das Lay-Out sieht sehr ähnlich, wie gezeigt, durch die folgenden zwei Codeblöcke aus).

//In C

für (ich = 0; ich

# in der Pythonschlange

weil ich in der Reihe (10):

wenn ich % 2 == 0:

doSomething (ich)

sonst:

doSomethingElse (ich)

</Quelle>

;; im Lispeln

(dotimes (ich 10)

(wenn (evenp i)

(tun Sie - etwas ich)

("tun etwas anderes" i)))

</Quelle>

Kompaktkontrolllesbarkeitsstil

Dieser Stil macht es leicht, den linken Rand des Codes für Kontrollbehauptungen abzuschöpfen (wohingegen Stile wie 1TBS Erklärungen solcher als "sonst" härter abgeben zu sehen, weil sie nach einer Endklammer auf derselben Linie sind). Jedoch hält es den Code kompakter als Stile wie der Stil von Allman, durch das Stellen öffnender Klammern am Ende Linien (im Vergleich mit auf ihren eigenen Linien).

//In JS

wenn (x == y) {\

doSomethingA ;

doSomethingB ;

}\

sonst {\

doSomethingC ;

doSomethingD ;

}\</Quelle>

Andere Rücksichten

Das Verlieren der Spur von Blöcken

In bestimmten Situationen gibt es eine Gefahr der verlierenden Spur von Block-Grenzen. Das wird häufig in großen Abteilungen des Codes gesehen, der viele zusammengesetzte Behauptungen enthält, die zu vielen Niveaus der Einrückung verschachtelt sind - als der Programmierer zum Boden eines riesigen Satzes von verschachtelten Behauptungen scrollt, kann er Spur verloren haben, deren Behauptungen kontrollieren, gehen wo.

Programmierer, die sich auf das Zählen der öffnenden geschweiften Klammern verlassen, können Schwierigkeit mit Einrückungsstilen solcher als K&R haben, wo die beginnende geschweifte Klammer von seiner Kontrollbehauptung nicht visuell getrennt wird. Programmierer, die sich mehr auf die Einrückung verlassen, werden mehr von Stilen gewinnen, die, solcher als K&R vertikal kompakt sind, weil die Blöcke kürzer sind.

Um zu vermeiden, Spur von Kontrollbehauptungen solcher bezüglich zu verlieren, kann man einen großen Einzug, wie ein hartes breites 8-Einheiten-Etikett, zusammen damit verwenden, große Funktionen in kleinere und lesbarere Funktionen zu zerbrechen. Linux wird dieser Weg, sowie das Verwenden K&R Stil getan.

In Unix- oder Linux-artigen Systemen, wo vi oder Schwung häufig die Verzug-Textaufbereiter sind, soll eine Methode, um Block-Grenzen zu verfolgen, den Textcursor über eine der geschweiften Klammern und das Drücken des '%'-Schlüssels einstellen. Vi oder Schwung werden dann den Cursor zur gegenüberliegenden geschweiften Klammer drängen. Seitdem 'der folgende' Schlüssel des Cursors des Textes (nämlich, der 'n' Schlüssel) Richtungspositionierungsinformation behalten haben (ob oder 'unten' Schlüssel vorher gedrückt wurde), konnte das Punktmakro ('der.' Schlüssel) dann verwendet werden, um den Textcursor auf der folgenden geschweiften Klammer in Anbetracht eines passenden Codierstils zu legen. Wechselweise kann die Inspektion der Block-Grenzen mit dem '%'-Schlüssel verwendet werden, um einen Codierstandard geltend zu machen.

Ein anderer Weg ist, nach der geschweiften Schlussklammer hinzugefügte Reihenanmerkungen zu verwenden:

für (interne Nummer i = 0; ich

wenn (x

Jedoch ist das Aufrechterhalten des Doppelcodes in vielfachen Positionen der Hauptnachteil dieser Methode.

Eine andere Lösung wird in einem sich faltenden Redakteur durchgeführt, der den Entwickler verbergen oder Blöcke des Codes durch ihr Einrückungsniveau oder durch ihre zusammengesetzte Behauptungsstruktur offenbaren lässt. Viele Redakteure werden auch das Zusammenbringen von Klammern oder geschweiften Klammern hervorheben, wenn das Auslassungszeichen neben einem eingestellt wird.

Behauptungseinfügung

K&R verhindert Stil einen anderen allgemeinen ertragenen Fehler, wenn er den UNIX Standardlinienredakteur, Hrsg. verwendet, Eine Behauptung, die irrtümlicherweise zwischen der Kontrollbehauptung und der öffnenden geschweiften Klammer des Schleife-Blocks eingefügt ist, verwandelt den Körper der Schleife in eine einzelne Reise.

für (interne Nummer i = 0; ich

K&R vermeidet Stil dieses Problem durch das Halten der Kontrollbehauptung und der öffnenden geschweiften Klammer auf derselben Linie.

Siehe auch

Links


Detroit Metropolitangrafschaftflughafen von Wayne / Asheville Regionalflughafen
Impressum & Datenschutz