As tags de analisador servem para identificar como uma solução foi resolvida.
Essas tags podem então ser usadas para:
Uma tag é uma string formatada assim: <category>:<thing>.
Oferecemos suporte a quatro categorias diferentes, do mais alto nível ao mais baixo:
| Categoria | Descrição | Especificidade | Exemplos |
|---|---|---|---|
paradigm |
Um paradigma de programação | Altíssimo nível, não específico de trilha |
imperative, functional
|
technique |
Uma técnica sendo usada | Alto nível, a maioria não será específica de trilha |
recursion, immutability
|
construct |
Um construto da linguagem | Muitos não serão específicos de trilha |
bitwise-and, for-loop
|
uses |
Uso específico de uma linguagem, como tipos ou métodos | Baixo nível, específico de trilha |
DateTime.add_seconds, IEnumerable
|
Alguns exemplos de tags:
paradigm:functionaltechnique:recursionconstruct:bitwise-anduses:DateTime.add_secondsAs trilhas são livres para marcar as soluções como quiserem, mas recomendamos tentar usar a lista de tags usadas com frequência abaixo sempre que possível. Usar um conjunto comum de tags nos permite fazer coisas bem legais, como ligar soluções entre trilhas.
| Tag | Descrição |
|---|---|
paradigm:array |
usa programação com arrays. |
paradigm:declarative |
usa programação declarativa. |
paradigm:functional |
usa programação funcional. |
paradigm:generic |
usa programação genérica. |
paradigm:imperative |
usa programação imperativa. |
paradigm:logic |
usa programação lógica. |
paradigm:meta |
usa metaprogramação. |
paradigm:object-oriented |
usa programação orientada a objetos. |
paradigm:procedural |
usa programação procedural. |
paradigm:reflective |
usa programação reflexiva. |
paradigm:stack-oriented |
usa programação orientada a pilha. |
| Tag | Descrição |
|---|---|
technique:bit-manipulation |
manipula bits, normalmente com operadores bit a bit (por exemplo, AND, XOR ou deslocamento à esquerda) |
technique:bit-shifting |
desloca bits em um número |
technique:boolean-logic |
executa lógica booleana (AND, OR, NOT) |
technique:composition |
usa composição |
technique:concurrency |
executa código de forma concorrente |
technique:enumeration |
enumera valores |
technique:error-handling |
trata erros |
technique:exceptions |
captura ou lança exceções |
technique:function-composition |
usa composição de funções |
technique:generator |
usa um gerador |
technique:higher-order-functions |
usa funções de ordem superior |
technique:immutability |
usa imutabilidade |
technique:immutable-collection |
usa uma coleção cujo conteúdo é imutável |
technique:inheritance |
usa herança |
technique:laziness |
produz valores sob demanda, somente quando necessário |
technique:locks |
usa locks para obter acesso exclusivo a recursos |
technique:looping |
usa laços |
technique:math |
usa matemática |
technique:memory-management |
gerencia memória |
technique:ordering |
ordena dados |
technique:parallelism |
executa código em paralelo |
technique:parser |
faz o parsing de dados |
technique:pointers |
usa ponteiros |
technique:randomness |
usa aleatoriedade |
technique:recursion |
usa recursão |
technique:regular-expression |
usa expressões regulares |
technique:short-circuiting |
usa curto-circuito para evitar avaliações desnecessárias |
technique:sorted-collection |
usa uma coleção cujos elementos estão sempre ordenados |
technique:sorting |
ordena dados |
technique:tail-call-optimization |
usa otimização de chamada de cauda para uma recursão eficiente |
technique:type-conversion |
converte valores de um tipo para outro tipo |
technique:unsafe |
usa código unsafe (por exemplo, aritmética de ponteiros) |
| Tag | Descrição |
|---|---|
construct:abstract-class |
define uma classe abstrata |
construct:abstract-method |
define um método abstrato |
construct:add-assignment |
combina adição com atribuição |
construct:add |
usa adição |
construct:array |
usa ou declara um array |
construct:assignment |
atribui ou vincula um valor a uma variável/nome |
construct:async-await |
usa async/await
|
construct:attribute |
anota um membro com metadados |
construct:auto-implemented-property |
define uma propriedade autoimplementada |
construct:big-integer |
usa um número inteiro grande |
construct:binary-number |
define um número em notação binária |
construct:bit-array |
usa ou declara um bit array |
construct:bitwise-and-assignment |
combina um AND bit a bit com atribuição |
construct:bitwise-and |
executa um AND bit a bit |
construct:bitwise-left-shift-assignment |
combina um deslocamento à esquerda bit a bit com atribuição |
construct:bitwise-left-shift |
executa um deslocamento à esquerda bit a bit |
construct:bitwise-not |
executa um NOT bit a bit |
construct:bitwise-or-assignment |
combina um OR bit a bit com atribuição |
construct:bitwise-or |
executa um OR bit a bit |
construct:bitwise-right-shift-assignment |
combina um deslocamento à direita bit a bit com atribuição |
construct:bitwise-right-shift |
executa um deslocamento à direita bit a bit |
construct:bitwise-xor-assignment |
combina um XOR bit a bit com atribuição |
construct:bitwise-xor |
executa um XOR bit a bit |
construct:block |
define um bloco que contém uma lista de instruções |
construct:boolean |
define ou usa um valor booleano |
construct:boxing |
usa boxing |
construct:break |
sai de um laço |
construct:byte |
usa um número inteiro sem sinal de 8 bits |
construct:catch |
captura uma exceção |
construct:char |
usa um caractere |
construct:checked-arithmetic |
usa aritmética verificada (que protege contra estouros) |
construct:class |
define uma classe |
construct:collection-initializer |
define os valores de uma coleção por meio de um inicializador |
construct:command |
define um comando |
construct:comment |
define um comentário |
construct:comparison-chaining |
encadeia chamadas de comparação |
construct:comparison |
compara dois valores quanto à ordem relativa entre eles |
construct:complex-number |
usa um número complexo |
construct:computed-string |
define uma string computada |
construct:concatenation |
concatena valores |
construct:conditional-access |
acessa um método condicionalmente |
construct:conditional-operator |
usa um operador condicional ternário |
construct:conditional |
executa código condicionalmente |
construct:constant |
define um valor constante (imutável) |
construct:constructor |
define um construtor |
construct:continue |
passa para a próxima iteração de um laço |
construct:conversion-operator |
define um operador de conversão |
construct:copy |
copia um valor |
construct:coroutine |
define ou usa uma corrotina |
construct:custom-attribute |
define um atributo personalizado |
construct:date-time |
usa um valor que representa uma combinação de data e hora |
construct:date |
usa um valor que representa uma data (sem hora) |
construct:decimal |
usa um número de ponto flutuante de 128 bits |
construct:decrement |
decrementa um valor |
construct:default-interface-implementation |
define uma implementação padrão em uma interface |
construct:default |
define um valor padrão (por exemplo, para um parâmetro) |
construct:destructuring |
desestrutura um valor em suas partes |
construct:dictionary-comprehension |
cria um dicionário por meio de uma compreensão |
construct:dictionary |
usa/define um dicionário/mapa |
construct:discard |
usa o valor especial discard |
construct:divide-assignment |
combina divisão com atribuição |
construct:divide |
usa divisão |
construct:do-while-loop |
usa um laço do-while
|
construct:double |
usa um número de ponto flutuante de 64 bits |
construct:else |
define um bloco else
|
construct:enum |
define ou usa um enum (enumeração de valores) |
construct:equality |
compara a igualdade de dois valores |
construct:error |
define ou usa um erro |
construct:event |
define ou usa eventos |
construct:exception |
define ou usa exceções |
construct:explicit-conversion |
converte explicitamente de um tipo para outro tipo |
construct:explicit-import |
importa apenas funcionalidades específicas |
construct:exponentiation |
calcula a exponenciação de um valor |
construct:expression-bodied-member |
define um membro com corpo de expressão |
construct:extension-method |
define um método de extensão |
construct:field-access |
acessa um campo |
construct:field |
define um campo |
construct:finally |
usa finally para garantir que um bloco de código específico sempre rode |
construct:flags-enum |
define ou usa um enum de flags |
construct:float |
usa um número de ponto flutuante de 32 bits |
construct:floating-point-number |
usa um número de ponto flutuante |
construct:for-loop |
usa um laço for
|
construct:foreach |
usa um laço foreach
|
construct:function-overloading |
usa sobrecarga de funções |
construct:function |
define uma função |
construct:generator |
define uma função ou um método gerador |
construct:generic-function |
define uma função parametrizada com um ou mais tipos |
construct:generic-method |
define um método parametrizado com um ou mais tipos |
construct:generic-type |
define um tipo parametrizado com um ou mais tipos |
construct:getter |
define um getter |
construct:global-function |
define uma função disponível globalmente |
construct:global-variable |
define uma variável disponível globalmente |
construct:header |
define um arquivo de cabeçalho |
construct:hexadecimal-number |
define um número em notação hexadecimal |
construct:if |
usa uma condicional if
|
construct:implicit-conversion |
converte implicitamente de um tipo para outro tipo |
construct:implicit-loop |
itera implicitamente sobre uma coleção de valores |
construct:implicit-return |
retorna um valor implicitamente |
construct:import |
importa funcionalidades implementadas em outro lugar (por exemplo, de um namespace/módulo) |
construct:increment |
incrementa um valor |
construct:index-operator |
define um operador para indexar um objeto |
construct:indexer |
define ou usa um indexador |
construct:indexing |
acessa um valor por índice |
construct:inequality |
compara a desigualdade de dois valores |
construct:infix-operator |
define um operador infixo |
construct:initialization |
inicializa um objeto após a criação |
construct:initializer-list |
inicializa os valores dos campos de um objeto |
construct:initializer |
inicializa um objeto |
construct:instance |
cria ou usa uma instância de um tipo |
construct:instantiation |
cria uma instância de um tipo |
construct:int |
usa um número inteiro com sinal de 32 bits |
construct:integral-number |
usa um número inteiro (integer) |
construct:interface |
define uma interface |
construct:invocation |
invoca um método/função |
construct:iterator |
define uma função ou um método sobre o qual é possível iterar |
construct:jagged-array |
usa um jagged array (um array de arrays) |
construct:lambda |
define uma lambda (também chamada de "função anônima") |
construct:linked-list |
usa uma lista encadeada |
construct:linq |
usa LINQ |
construct:list-comprehension |
constrói uma lista por meio de uma compreensão |
construct:list |
usa uma lista |
construct:local-function |
define uma função local |
construct:local-variable |
define uma variável local |
construct:lock |
usa um lock |
construct:logical-and |
executa um AND lógico |
construct:logical-not |
executa um NOT lógico |
construct:logical-or |
executa um OR lógico |
construct:long |
usa um número inteiro com sinal de 64 bits |
construct:loop |
define um laço |
construct:macro |
define uma macro |
construct:membership-test |
verifica se um valor pertence a outro valor |
construct:metatable |
define uma metatable |
construct:method-chaining |
encadeia várias chamadas de método |
construct:method-overloading |
usa sobrecarga de métodos |
construct:method-override |
define um método sobrescrito |
construct:method |
define um método |
construct:module |
define um módulo (agrupamento de código) |
construct:modulo-assignment |
combina o resto da divisão com atribuição |
construct:modulo |
usa o resto da divisão |
construct:multi-dimensional-array |
usa um array com várias dimensões |
construct:multiline-string |
define uma string multilinha |
construct:multiple-assignment |
atribui vários valores de uma vez |
construct:multiple-dispatch |
usa despacho múltiplo |
construct:multiply-assignment |
combina multiplicação com atribuição |
construct:multiply |
usa multiplicação |
construct:named-argument |
passa um argumento pelo nome |
construct:namespace |
define um namespace (agrupamento de código) |
construct:nested-function |
define uma função aninhada |
construct:nested-type |
define um tipo aninhado |
construct:nesting |
usa aninhamento |
construct:nint |
usa um número inteiro com sinal específico da plataforma (32 ou 64 bits) |
construct:nuint |
usa um número inteiro sem sinal específico da plataforma (32 ou 64 bits) |
construct:null |
usa null/nil para representar a ausência de um valor |
construct:nullability |
lida com valores null/nil |
construct:number |
usa um número (com ou sem sinal) |
construct:object-initializer |
define os valores de um objeto por meio de um inicializador |
construct:octal-number |
define um número em notação octal |
construct:operator-overloading |
usa sobrecarga de operadores |
construct:option |
usa um tipo option |
construct:optional-parameter |
define um parâmetro opcional |
construct:overflow |
usa estouro aritmético |
construct:parameter |
define um parâmetro |
construct:parenthesized-expression |
coloca uma expressão entre parênteses |
construct:pattern-matching |
usa correspondência de padrões |
construct:pattern |
define um padrão usado na correspondência de padrões |
construct:pipe-backward |
usa um pipe para trás |
construct:pipe-forward |
usa um pipe para frente |
construct:pipeline |
define um pipeline |
construct:point-free |
define funções sem os argumentos sobre os quais elas operam |
construct:pointer |
usa um ponteiro |
construct:postfix-decrement |
decrementa um valor usando notação pós-fixa |
construct:postfix-increment |
incrementa um valor usando notação pós-fixa |
construct:prefix-decrement |
decrementa um valor usando notação pré-fixa |
construct:prefix-increment |
incrementa um valor usando notação pré-fixa |
construct:print |
imprime um valor no console |
construct:property |
define uma propriedade (getter/setter) |
construct:query-expression |
consulta dados por meio de uma expressão |
construct:queue |
usa uma fila |
construct:range |
define um intervalo |
construct:read-only |
define um valor somente leitura |
construct:record |
define um record |
construct:regular-expression |
define ou usa uma expressão regular |
construct:result |
usa um tipo result |
construct:return-type |
define o tipo de retorno de uma função ou de um método |
construct:return |
retorna de uma função/método |
construct:sbyte |
usa um número inteiro com sinal de 8 bits |
construct:scientific-notation-number |
define um número em notação científica |
construct:set-comprehension |
cria um conjunto por meio de uma compreensão |
construct:set |
usa um conjunto |
construct:setter |
define um setter |
construct:short |
usa um número inteiro com sinal de 16 bits |
construct:slice |
usa um slice |
construct:stack |
usa uma pilha |
construct:static-field |
define um campo estático |
construct:static-method |
define um método estático |
construct:string-formatting |
constrói uma string por meio de uma string de formato |
construct:string-interpolation |
define uma string interpolada |
construct:string |
define uma string |
construct:struct |
define uma struct |
construct:subtract-assignment |
combina subtração com atribuição |
construct:subtract |
usa subtração |
construct:sum-type |
define um tipo soma |
construct:switch |
usa um switch
|
construct:table |
define uma tabela |
construct:template-alias |
define um alias para um template |
construct:template-parameter |
define um parâmetro de template |
construct:template |
define um template |
construct:throw |
lança uma exceção |
construct:time |
usa um objeto que representa o horário |
construct:try |
trata uma exceção explicitamente |
construct:tuple |
usa uma tupla |
construct:type-alias |
define um alias para um tipo |
construct:type-conversion |
converte (faz cast de) um valor para outro tipo |
construct:type-extension |
estende um tipo com novas funcionalidades |
construct:type-inference |
infere automaticamente o tipo de um valor/função |
construct:type-test |
verifica se um valor tem um tipo específico |
construct:uint |
usa um número inteiro sem sinal de 32 bits |
construct:ulong |
usa um número inteiro sem sinal de 64 bits |
construct:unary-minus |
usa um menos unário |
construct:unary-plus |
usa um mais unário |
construct:underscored-number |
usa um número com sublinhados como separadores de dígitos |
construct:union-type |
define um tipo união |
construct:user-defined-exception |
define uma exceção personalizada, definida pelo usuário |
construct:ushort |
usa um número inteiro sem sinal de 16 bits |
construct:using-directive |
usa código de outro arquivo |
construct:using-statement |
atribui e descarta um valor por meio da instrução using |
construct:varargs |
define um parâmetro que aceita passar zero ou mais valores |
construct:variable |
declara uma variável |
construct:vector |
usa um vetor |
construct:verbatim-string |
usa uma string verbatim (sem sequências de escape) |
construct:virtual-method |
define um método virtual |
construct:visibility-modifiers |
especifica a visibilidade de um construto (por exemplo, um método ou uma classe) |
construct:while-loop |
usa um laço while
|
construct:yield |
produz um valor em um laço sob demanda |
Como essa categoria é específica de cada linguagem, não há tags usadas com frequência aqui.