Por que # não é permitido em um identificador?
-
27-09-2019 - |
Pergunta
O Java permite que o identificador comece ou contenha $ (sinal de dólar). por exemplo, int a $ b;
Mas por que # não é permitido em um identificador? Qual é o motivo específico? # É um operador ou algo em java? por exemplo, int a#b;
Solução
Eu diria que é uma combinação de legibilidade e os antecedentes históricos do idioma. Lembre-se de que a sintaxe Java foi projetada para ser fácil para os programadores C e C ++. (E como @dan04 aponta, o #
O personagem é significativo na maioria dos dialetos de C e C ++.)
Aliás, enquanto $
é legal técnico nos identificadores Java, é reservado para uso por compiladores, geradores de código e outras coisas. Se você usar $
Em identificadores em seu código -fonte, você corre o risco de ter problemas com colisões com identificadores sintéticos produzidos por (por exemplo) o javac
compilador.
Outras dicas
Duvido que houvesse um motivo específico para proibir #
por mais que houvesse uma aversão geral à pontuação em identificadores (o que poderia olhar como operadores). Exceções especiais foram feitas para lidar com as classes Word_separation e $.
Em C e C ++, no qual a sintaxe de Java se baseia, #
é usado para pré-processador diretivas.
Variáveis pode conter cartas, dígitos, sublinhados e sinais de dólar - excluindo #, @, ~, `
Eu acho que isso é por uma questão de legibilidade - int s#@t;
parece estranho.