Declaração de variável sem nome - por que funciona?

Sachin Verma:

Estou surpreso ao ver esse comportamento.

É um bug ou algo assim?

for(Object obj = new Object(), Integer = new Integer(300);
    obj.toString().length()>3;
    System.out.println("on object's loop")) {

} //causes an infinite loop (not foreach loop, of course)

o código acima é compilado e executado sem qualquer referência a new Integer(300). Por quê então?

Estou apenas interessado em saber porque Integer = new Integer(300);está tudo bem sem qualquer referência.

arshajii:
Object obj = new Object(), Integer = new Integer(300);

Isso cria duas variáveis:

  1. objdo tipo Object, ao qual é atribuído new Object().
  2. Integer(sim, esse é o nome da variável) também do tipo Object, ao qual é atribuído new Integer(300).

A propósito, isso não tem nada a ver com o for-loop; essa linha compilaria bem por conta própria. Agora, se isso ,fosse realmente um ;, seria uma história diferente.

Em geral, podemos construir declarações válidas da forma:

Type t1 = ..., t2 = ..., t3 = ..., ...;

que é equivalente a

Type t1 = ...;
Type t2 = ...;
Type t3 = ...;
...

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Por que a declaração de variável funciona bem como a condição do loop for?

Por que essa declaração de variável local não funciona?

Por que a declaração de variável funciona bem como a condição do loop for?

Por que mudar o nome da variável de uma tabela não funciona se é propriedade de uma classe?

Por que o nome da variável como caractere de sublinhado ("_") não funciona para desconstrução

Por que os símbolos de ponteiro (*) e array ([]) são associados ao nome da variável e não ao tipo de declaração da variável?

Por que esperar uma função assíncrona diretamente não funciona sem atribuí-la a uma variável de tarefa

Por que é permitido ter uma declaração sem nome?

DLL usando __stdcall sem decoração de nome: por que funciona?

Roslyn: Obter o símbolo da declaração catch sem nome de variável

Por que substituir uma variável em uma expressão por uma variável com o mesmo nome mas com um nome de símbolo diferente não funciona

Por que a troca sem a terceira variável não funciona aqui?

Por que uma variável embutida struct sem nome não tem o mesmo endereço em todas as unidades de tradução?

Por que não posso usar 'nome' como um nome de variável / objeto?

O que significam as chaves em torno do nome da variável sem operador de atribuição

Por que uma declaração de domínio de variável de decisão não funciona no Pyomo v5.7 que funcionava com a v5.6.9

JS: Por que o "Modo estrito" não mostra o erro de referência ao declarar uma variável sem var e ao mesmo tempo manter a função e o nome da variável

Que tipo devo usar no construtor para inicializar uma variável de membro definida por um enum sem nome?

Por que o golang coloca o especificador de tipo "após" o nome da variável?

Por que o PowerShell lista a primeira entrada de CSV importado como nome de variável?

Por que a declaração de variável curta não é permitida no nível do pacote no Go?

Por que a declaração de variável curta não é permitida no nível do pacote no Go?

Por que posso declarar uma variável filha com o mesmo nome de uma variável no escopo pai?

Por que o nome de base não pode ser usado para uma variável?

PHP declara e atribui variável (mesmo nome que o nome da função) antes de declarar uma função

Por que a passagem de variável local por valor funciona?

Por que isso não funciona? - usando .blit por meio de uma variável

Por que 'let' é permitido como nome de variável?

Por que a conversão de string para variável não funciona para a variável _GET de outro arquivo?

TOP lista

quentelabel

Arquivo