Mit Analyzer-Tags lässt sich festhalten, wie eine Lösung gelöst wurde.
Diese Tags kannst du dann nutzen, um:
Ein Tag ist ein String mit dem Format: <category>:<thing>.
Wir unterstützen vier verschiedene Kategorien, vom höchsten zum niedrigsten Level:
| Kategorie | Beschreibung | Spezifität | Beispiele |
|---|---|---|---|
paradigm |
Ein Programmierparadigma | Sehr hoch angesiedelt, nicht track-spezifisch |
imperative, functional
|
technique |
Eine verwendete Technik | Hoch angesiedelt, die meisten sind nicht track-spezifisch |
recursion, immutability
|
construct |
Ein Sprachkonstrukt | Viele sind nicht track-spezifisch |
bitwise-and, for-loop
|
uses |
Sprachspezifische Verwendung, etwa Typen oder Methoden | Niedrig angesiedelt, track-spezifisch |
DateTime.add_seconds, IEnumerable
|
Einige Beispiel-Tags:
paradigm:functionaltechnique:recursionconstruct:bitwise-anduses:DateTime.add_secondsTracks können ihre Lösungen zwar frei taggen, wie sie möchten, aber wir empfehlen, nach Möglichkeit die folgende Liste häufig verwendeter Tags zu nutzen. Ein gemeinsamer Satz von Tags ermöglicht uns ein paar schöne Dinge, zum Beispiel das Verknüpfen von Lösungen über Tracks hinweg.
| Tag | Beschreibung |
|---|---|
paradigm:array |
verwendet Array-Programmierung. |
paradigm:declarative |
verwendet deklarative Programmierung. |
paradigm:functional |
verwendet funktionale Programmierung. |
paradigm:generic |
verwendet generische Programmierung. |
paradigm:imperative |
verwendet imperative Programmierung. |
paradigm:logic |
verwendet logische Programmierung. |
paradigm:meta |
verwendet Metaprogrammierung. |
paradigm:object-oriented |
verwendet objektorientierte Programmierung. |
paradigm:procedural |
verwendet prozedurale Programmierung. |
paradigm:reflective |
verwendet reflektierende Programmierung. |
paradigm:stack-oriented |
verwendet stapelorientierte Programmierung. |
| Tag | Beschreibung |
|---|---|
technique:bit-manipulation |
manipuliert Bits, meist über bitweise Operatoren (z. B. AND, XOR oder Linksverschiebung) |
technique:bit-shifting |
verschiebt Bits in einer Zahl |
technique:boolean-logic |
führt boolesche Logik aus (AND, OR, NOT) |
technique:composition |
verwendet Komposition |
technique:concurrency |
führt Code nebenläufig aus |
technique:enumeration |
zählt Werte auf |
technique:error-handling |
behandelt Fehler |
technique:exceptions |
fängt oder wirft Ausnahmen |
technique:function-composition |
verwendet Funktionskomposition |
technique:generator |
verwendet einen Generator |
technique:higher-order-functions |
verwendet Funktionen höherer Ordnung |
technique:immutability |
verwendet Unveränderlichkeit |
technique:immutable-collection |
verwendet eine Collection, deren Inhalt unveränderlich ist |
technique:inheritance |
verwendet Vererbung |
technique:laziness |
erzeugt Werte erst bei Bedarf |
technique:locks |
verwendet Locks für exklusiven Zugriff auf Ressourcen |
technique:looping |
verwendet Schleifen |
technique:math |
verwendet Mathematik |
technique:memory-management |
verwaltet Speicher |
technique:ordering |
ordnet Daten |
technique:parallelism |
führt Code parallel aus |
technique:parser |
parst Daten |
technique:pointers |
verwendet Pointer |
technique:randomness |
verwendet Zufall |
technique:recursion |
verwendet Rekursion |
technique:regular-expression |
verwendet reguläre Ausdrücke |
technique:short-circuiting |
nutzt Kurzschlussauswertung, um unnötige Auswertung zu vermeiden |
technique:sorted-collection |
verwendet eine Collection, deren Elemente immer sortiert sind |
technique:sorting |
sortiert Daten |
technique:tail-call-optimization |
nutzt Endrekursionsoptimierung für effiziente Rekursion |
technique:type-conversion |
konvertiert Werte von einem Typ in einen anderen |
technique:unsafe |
verwendet unsicheren Code (zum Beispiel Zeigerarithmetik) |
| Tag | Beschreibung |
|---|---|
construct:abstract-class |
definiert eine abstrakte Klasse |
construct:abstract-method |
definiert eine abstrakte Methode |
construct:add-assignment |
kombiniert Addition mit Zuweisung |
construct:add |
verwendet Addition |
construct:array |
verwendet oder deklariert ein Array |
construct:assignment |
weist einer Variable bzw. einem Namen einen Wert zu oder bindet ihn daran |
construct:async-await |
verwendet async/await
|
construct:attribute |
annotiert ein Element mit Metadaten |
construct:auto-implemented-property |
definiert eine automatisch implementierte Eigenschaft |
construct:big-integer |
verwendet eine große Ganzzahl |
construct:binary-number |
definiert eine Zahl in Binärschreibweise |
construct:bit-array |
verwendet oder deklariert ein Bit-Array |
construct:bitwise-and-assignment |
kombiniert ein bitweises AND mit Zuweisung |
construct:bitwise-and |
führt ein bitweises AND aus |
construct:bitwise-left-shift-assignment |
kombiniert eine bitweise Linksverschiebung mit Zuweisung |
construct:bitwise-left-shift |
führt eine bitweise Linksverschiebung aus |
construct:bitwise-not |
führt ein bitweises NOT aus |
construct:bitwise-or-assignment |
kombiniert ein bitweises OR mit Zuweisung |
construct:bitwise-or |
führt ein bitweises OR aus |
construct:bitwise-right-shift-assignment |
kombiniert eine bitweise Rechtsverschiebung mit Zuweisung |
construct:bitwise-right-shift |
führt eine bitweise Rechtsverschiebung aus |
construct:bitwise-xor-assignment |
kombiniert ein bitweises XOR mit Zuweisung |
construct:bitwise-xor |
führt ein bitweises XOR aus |
construct:block |
definiert einen Block mit einer Liste von Anweisungen |
construct:boolean |
definiert oder verwendet einen booleschen Wert |
construct:boxing |
verwendet Boxing |
construct:break |
bricht aus einer Schleife aus |
construct:byte |
verwendet eine vorzeichenlose 8-Bit-Ganzzahl |
construct:catch |
fängt eine Ausnahme |
construct:char |
verwendet ein Zeichen |
construct:checked-arithmetic |
verwendet geprüfte Arithmetik (die vor Überläufen schützt) |
construct:class |
definiert eine Klasse |
construct:collection-initializer |
setzt die Werte einer Collection über einen Initialisierer |
construct:command |
definiert einen Befehl |
construct:comment |
definiert einen Kommentar |
construct:comparison-chaining |
verkettet Vergleichsaufrufe |
construct:comparison |
vergleicht zwei Werte in ihrer relativen Reihenfolge |
construct:complex-number |
verwendet eine komplexe Zahl |
construct:computed-string |
definiert einen berechneten String |
construct:concatenation |
verkettet Werte |
construct:conditional-access |
greift bedingt auf eine Methode zu |
construct:conditional-operator |
verwendet einen ternären Bedingungsoperator |
construct:conditional |
führt Code bedingt aus |
construct:constant |
definiert einen konstanten (unveränderlichen) Wert |
construct:constructor |
definiert einen Konstruktor |
construct:continue |
fährt mit der nächsten Iteration einer Schleife fort |
construct:conversion-operator |
definiert einen Konvertierungsoperator |
construct:copy |
kopiert einen Wert |
construct:coroutine |
definiert oder verwendet eine Coroutine |
construct:custom-attribute |
definiert ein benutzerdefiniertes Attribut |
construct:date-time |
verwendet einen Wert, der eine Kombination aus Datum und Uhrzeit darstellt |
construct:date |
verwendet einen Wert, der ein Datum darstellt (ohne Uhrzeit) |
construct:decimal |
verwendet eine 128-Bit-Gleitkommazahl |
construct:decrement |
verringert einen Wert |
construct:default-interface-implementation |
definiert eine Standardimplementierung in einem Interface |
construct:default |
definiert einen Standardwert (z. B. für einen Parameter) |
construct:destructuring |
zerlegt einen Wert in seine Bestandteile |
construct:dictionary-comprehension |
erstellt ein Wörterbuch über eine Comprehension |
construct:dictionary |
verwendet oder definiert ein Wörterbuch bzw. eine Map |
construct:discard |
verwendet den speziellen Discard-Wert |
construct:divide-assignment |
kombiniert Division mit Zuweisung |
construct:divide |
verwendet Division |
construct:do-while-loop |
verwendet eine do-while-Schleife |
construct:double |
verwendet eine 64-Bit-Gleitkommazahl |
construct:else |
definiert einen else-Zweig |
construct:enum |
definiert oder verwendet ein Enum (Aufzählung von Werten) |
construct:equality |
vergleicht zwei Werte auf Gleichheit |
construct:error |
definiert oder verwendet einen Fehler |
construct:event |
definiert oder verwendet Events |
construct:exception |
definiert oder verwendet Ausnahmen |
construct:explicit-conversion |
konvertiert explizit von einem Typ in einen anderen |
construct:explicit-import |
importiert nur ausgewählte Funktionalität |
construct:exponentiation |
berechnet die Potenz eines Werts |
construct:expression-bodied-member |
definiert ein Member mit Ausdruckskörper |
construct:extension-method |
definiert eine Erweiterungsmethode |
construct:field-access |
greift auf ein Feld zu |
construct:field |
definiert ein Feld |
construct:finally |
verwendet finally, um sicherzustellen, dass ein bestimmter Codeblock immer ausgeführt wird |
construct:flags-enum |
definiert oder verwendet ein Flags-Enum |
construct:float |
verwendet eine 32-Bit-Gleitkommazahl |
construct:floating-point-number |
verwendet eine Gleitkommazahl |
construct:for-loop |
verwendet eine for-Schleife |
construct:foreach |
verwendet eine foreach-Schleife |
construct:function-overloading |
verwendet Funktionsüberladung |
construct:function |
definiert eine Funktion |
construct:generator |
definiert eine Generatorfunktion oder -methode |
construct:generic-function |
definiert eine Funktion, die mit einem oder mehreren Typen parametrisiert ist |
construct:generic-method |
definiert eine Methode, die mit einem oder mehreren Typen parametrisiert ist |
construct:generic-type |
definiert einen Typ, der mit einem oder mehreren Typen parametrisiert ist |
construct:getter |
definiert einen Getter |
construct:global-function |
definiert eine Funktion, die global verfügbar ist |
construct:global-variable |
definiert eine Variable, die global verfügbar ist |
construct:header |
definiert eine Header-Datei |
construct:hexadecimal-number |
definiert eine Zahl in Hexadezimalschreibweise |
construct:if |
verwendet eine if-Anweisung |
construct:implicit-conversion |
konvertiert implizit von einem Typ in einen anderen |
construct:implicit-loop |
durchläuft implizit eine Collection von Werten |
construct:implicit-return |
gibt einen Wert implizit zurück |
construct:import |
importiert Funktionalität, die anderswo implementiert ist (z. B. aus einem Namespace/Modul) |
construct:increment |
erhöht einen Wert |
construct:index-operator |
definiert einen Operator zum Indexieren eines Objekts |
construct:indexer |
definiert oder verwendet einen Indexer |
construct:indexing |
greift über einen Index auf einen Wert zu |
construct:inequality |
vergleicht zwei Werte auf Ungleichheit |
construct:infix-operator |
definiert einen Infix-Operator |
construct:initialization |
initialisiert ein Objekt nach der Erstellung |
construct:initializer-list |
initialisiert die Werte der Felder eines Objekts |
construct:initializer |
initialisiert ein Objekt |
construct:instance |
erstellt oder verwendet eine Instanz eines Typs |
construct:instantiation |
erstellt eine Instanz eines Typs |
construct:int |
verwendet eine vorzeichenbehaftete 32-Bit-Ganzzahl |
construct:integral-number |
verwendet eine ganze Zahl (Integer) |
construct:interface |
definiert ein Interface |
construct:invocation |
ruft eine Methode/Funktion auf |
construct:iterator |
definiert eine Funktion oder Methode, über die iteriert werden kann |
construct:jagged-array |
verwendet ein jagged Array (ein Array aus Arrays) |
construct:lambda |
definiert ein Lambda (auch „anonyme Funktion“ genannt) |
construct:linked-list |
verwendet eine verkettete Liste |
construct:linq |
verwendet LINQ |
construct:list-comprehension |
erstellt eine Liste über eine Comprehension |
construct:list |
verwendet eine Liste |
construct:local-function |
definiert eine lokale Funktion |
construct:local-variable |
definiert eine lokale Variable |
construct:lock |
verwendet ein Lock |
construct:logical-and |
führt ein logisches AND aus |
construct:logical-not |
führt ein logisches NOT aus |
construct:logical-or |
führt ein logisches OR aus |
construct:long |
verwendet eine vorzeichenbehaftete 64-Bit-Ganzzahl |
construct:loop |
definiert eine Schleife |
construct:macro |
definiert ein Makro |
construct:membership-test |
prüft, ob ein Wert in einem anderen Wert enthalten ist |
construct:metatable |
definiert eine Metatabelle |
construct:method-chaining |
verkettet mehrere Methodenaufrufe |
construct:method-overloading |
verwendet Methodenüberladung |
construct:method-override |
definiert eine überschriebene Methode |
construct:method |
definiert eine Methode |
construct:module |
definiert ein Modul (eine Gruppierung von Code) |
construct:modulo-assignment |
kombiniert Divisionsrest mit Zuweisung |
construct:modulo |
verwendet den Divisionsrest |
construct:multi-dimensional-array |
verwendet ein Array mit mehreren Dimensionen |
construct:multiline-string |
definiert einen mehrzeiligen String |
construct:multiple-assignment |
weist mehrere Werte auf einmal zu |
construct:multiple-dispatch |
verwendet Multiple Dispatch |
construct:multiply-assignment |
kombiniert Multiplikation mit Zuweisung |
construct:multiply |
verwendet Multiplikation |
construct:named-argument |
übergibt ein Argument über seinen Namen |
construct:namespace |
definiert einen Namespace (eine Gruppierung von Code) |
construct:nested-function |
definiert eine verschachtelte Funktion |
construct:nested-type |
definiert einen verschachtelten Typ |
construct:nesting |
verwendet Verschachtelung |
construct:nint |
verwendet eine vorzeichenbehaftete plattformspezifische Ganzzahl (32 oder 64 Bit) |
construct:nuint |
verwendet eine vorzeichenlose plattformspezifische Ganzzahl (32 oder 64 Bit) |
construct:null |
verwendet null/nil, um das Fehlen eines Werts darzustellen |
construct:nullability |
behandelt null/nil-Werte |
construct:number |
verwendet eine Zahl (mit oder ohne Vorzeichen) |
construct:object-initializer |
setzt die Werte eines Objekts über einen Initialisierer |
construct:octal-number |
definiert eine Zahl in Oktalschreibweise |
construct:operator-overloading |
verwendet Operatorüberladung |
construct:option |
verwendet einen Optionstyp |
construct:optional-parameter |
definiert einen optionalen Parameter |
construct:overflow |
verwendet arithmetischen Überlauf |
construct:parameter |
definiert einen Parameter |
construct:parenthesized-expression |
setzt einen Ausdruck in runde Klammern |
construct:pattern-matching |
verwendet Pattern Matching |
construct:pattern |
definiert ein Muster für das Pattern Matching |
construct:pipe-backward |
verwendet eine Rückwärts-Pipe |
construct:pipe-forward |
verwendet eine Vorwärts-Pipe |
construct:pipeline |
definiert eine Pipeline |
construct:point-free |
definiert Funktionen ohne die Argumente, auf denen sie arbeiten |
construct:pointer |
verwendet einen Pointer |
construct:postfix-decrement |
verringert einen Wert in Postfix-Notation |
construct:postfix-increment |
erhöht einen Wert in Postfix-Notation |
construct:prefix-decrement |
verringert einen Wert in Präfix-Notation |
construct:prefix-increment |
erhöht einen Wert in Präfix-Notation |
construct:print |
gibt einen Wert auf der Konsole aus |
construct:property |
definiert eine Eigenschaft (Getter/Setter) |
construct:query-expression |
fragt Daten über einen Ausdruck ab |
construct:queue |
verwendet eine Queue |
construct:range |
definiert einen Bereich |
construct:read-only |
definiert einen schreibgeschützten Wert |
construct:record |
definiert ein Record |
construct:regular-expression |
definiert oder verwendet einen regulären Ausdruck |
construct:result |
verwendet einen Result-Typ |
construct:return-type |
definiert den Rückgabetyp einer Funktion oder Methode |
construct:return |
kehrt aus einer Funktion/Methode zurück |
construct:sbyte |
verwendet eine vorzeichenbehaftete 8-Bit-Ganzzahl |
construct:scientific-notation-number |
definiert eine Zahl in wissenschaftlicher Notation |
construct:set-comprehension |
erstellt ein Set über eine Comprehension |
construct:set |
verwendet ein Set |
construct:setter |
definiert einen Setter |
construct:short |
verwendet eine vorzeichenbehaftete 16-Bit-Ganzzahl |
construct:slice |
verwendet einen Slice |
construct:stack |
verwendet einen Stack |
construct:static-field |
definiert ein statisches Feld |
construct:static-method |
definiert eine statische Methode |
construct:string-formatting |
erstellt einen String über einen Format-String |
construct:string-interpolation |
definiert einen interpolierten String |
construct:string |
definiert einen String |
construct:struct |
definiert ein Struct |
construct:subtract-assignment |
kombiniert Subtraktion mit Zuweisung |
construct:subtract |
verwendet Subtraktion |
construct:sum-type |
definiert einen Summentyp |
construct:switch |
verwendet ein switch
|
construct:table |
definiert eine Tabelle |
construct:template-alias |
definiert einen Alias für ein Template |
construct:template-parameter |
definiert einen Template-Parameter |
construct:template |
definiert ein Template |
construct:throw |
wirft eine Ausnahme |
construct:time |
verwendet ein Objekt, das die Uhrzeit darstellt |
construct:try |
behandelt eine Ausnahme explizit |
construct:tuple |
verwendet ein Tupel |
construct:type-alias |
definiert einen Alias für einen Typ |
construct:type-conversion |
konvertiert (castet) einen Wert in einen anderen Typ |
construct:type-extension |
erweitert einen Typ um neue Funktionalität |
construct:type-inference |
leitet den Typ eines Werts bzw. einer Funktion automatisch ab |
construct:type-test |
prüft, ob ein Wert einen bestimmten Typ hat |
construct:uint |
verwendet eine vorzeichenlose 32-Bit-Ganzzahl |
construct:ulong |
verwendet eine vorzeichenlose 64-Bit-Ganzzahl |
construct:unary-minus |
verwendet ein unäres Minus |
construct:unary-plus |
verwendet ein unäres Plus |
construct:underscored-number |
verwendet eine Zahl mit Unterstrichen als Zifferntrenner |
construct:union-type |
definiert einen Union-Typ |
construct:user-defined-exception |
definiert eine benutzerdefinierte Ausnahme |
construct:ushort |
verwendet eine vorzeichenlose 16-Bit-Ganzzahl |
construct:using-directive |
verwendet Code aus einer anderen Datei |
construct:using-statement |
weist über die using-Anweisung einen Wert zu und gibt ihn wieder frei |
construct:varargs |
definiert einen Parameter, der null oder mehr Werte akzeptiert |
construct:variable |
deklariert eine Variable |
construct:vector |
verwendet einen Vektor |
construct:verbatim-string |
verwendet einen Verbatim-String (ohne Escape-Sequenzen) |
construct:virtual-method |
definiert eine virtuelle Methode |
construct:visibility-modifiers |
legt die Sichtbarkeit eines Konstrukts fest (z. B. einer Methode oder Klasse) |
construct:while-loop |
verwendet eine while-Schleife |
construct:yield |
liefert einen Wert in einer Schleife erst bei Bedarf |
Da diese Kategorie sprachspezifisch ist, gibt es hier keine häufig verwendeten Tags.