Galera, estou lendo um livro e apareceu o seguinte trecho de código:
boolean match = true;
match &= matchRegex(cerveja.nome, this.nome);
Eu não entendi esse sinal junto &=
.
O que significa esse &=
?
Galera, estou lendo um livro e apareceu o seguinte trecho de código:
boolean match = true;
match &= matchRegex(cerveja.nome, this.nome);
Eu não entendi esse sinal junto &=
.
O que significa esse &=
?
Nesse link tem a explicação: 15.26.2. Compound Assignment Operators, e nesse link local do guj também tem a explicação Diferença entre os operadores lógico && e &.
Nesse caso especifico:
match &= matchRegex(cerveja.nome, this.nome);
é a mesma coisa que:
match = match & matchRegex(cerveja.nome, this.nome);
Ou seja é uma forma resumida de escrever essa codificação e a operação é de bit a bit (&)
como explicado nos dois links dessa resposta, por favor, leia para seu entendimento.
Tem esse link também Does the Java &= operator apply & or &&?
Ok, então é como se fosse “+=”?
E se os valores fossem true & false, o que seria atribuído a variável match?
Não é igual a += o que faz porque um compara e o outro atribui. Faça o teste pra saber !