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;

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top