Logical NOT

Após ver o vídeo Wat (http://www.youtube.com/watch?v=kXEgk1Hdze0) resolvi montar este post para demonstrar mais casos similares. O Operador “!” é uma ótima opção.

O operador “!” tem sempre preferência, sendo assim, qualquer checagem utilizando-o será efetuado primeiro.

Segue um exemplo de uso do operador “logical NOT” indevido.

import flash.display.MovieClip;
import flash.display.Sprite;

var teste:*;

teste = new MovieClip();
// O operador ! tem preferência
if(!teste is Sprite){
	trace('Teste Certo');
}else{
	trace('Teste Errado');
}

teste = new Sprite();
// Os parênteses garantem o funcionamento correto
if(! ( teste is MovieClip ) ){
	trace('Teste Certo');
}else{
	trace('Teste Errado');
}

Por mais que o primeiro exemplo pareça certo, ele primeiro irá checar !teste e então testará o resultado disto (um booleano) com o operador ‘is’, resultando erroneamente.

A melhor opção é de sempre utilizar parênteses, garantindo o funcionamento correto de suas expressões.

Leave a Reply

Your email address will not be published. Required fields are marked *