Sobes.tech
Junior

O que faz o operador de dupla exclamação na linguagem de programação?

sobes.tech IA

Resposta da IA

Converte um valor em booleano. É equivalente a aplicar duas vezes o operador não (!).

O primeiro ! converte o valor para tipo booleano, invertendo-o. Por exemplo, uma string não vazia 'abc' torna-se false, e 0 torna-se true. O segundo ! inverte o resultado do primeiro, retornando a representação booleana original do valor. Assim, 'abc' torna-se true, e 0 false.

Exemplos em JavaScript:

// Conversão de uma string não vazia
console.log(!!'olá'); // true

// Conversão do número 0
console.log(!!0); // false

// Conversão de null
console.log(!!null); // false

// Conversão de undefined
console.log(!!undefined); // false

// Conversão de array vazio
console.log(!![]); // true

// Conversão de objeto vazio
console.log(!!{}); // true

Exemplos em Python (embora em Python não exista o operador nativo !!, pode-se emular seu comportamento):

# Emulação com bool()
print(bool('olá')) # True
print(bool(0))     # False
print(bool([]))    # True
print(bool({}))    # True

# Emulação com not not
print(not not 'olá') # True
print(not not 0)     # False
print(not not [])    # True
print(not not {})    # True

O objetivo principal é a conversão explícita para booleano, frequentemente usada para verificar a "truthiness" de um valor no contexto de operações booleanas e estruturas condicionais.