Lösungen taggen


Mit Analyzer-Tags lässt sich festhalten, wie eine Lösung gelöst wurde.

Diese Tags kannst du dann nutzen, um:

  • eine Lösung mit Ansätzen zu verknüpfen
  • eine Lösung mit Konzepten zu verknüpfen
  • nach Lösungen mit bestimmten Tags zu suchen

Format

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:functional
  • technique:recursion
  • construct:bitwise-and
  • uses:DateTime.add_seconds

Häufig verwendete Tags

Tracks 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.

Paradigma

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.

Techniken

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)

Konstrukte

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

Uses

Da diese Kategorie sprachspezifisch ist, gibt es hier keine häufig verwendeten Tags.