Sobes.tech
Junior

Какво прави операторът двойно удивителен знак в езика за програмиране?

sobes.tech AI

Отговор от AI

Преобразува стойност в булев. Еквивалентен е на двойното прилагане на оператора не (!).

Първият ! преобразува стойността в булев тип и я инвертира. Например, непразен низ 'abc' става false, а 0true. Вторият ! инвертира резултата от първия, връщайки оригиналното булево представяне на стойността. Така 'abc' става true, а 0false.

Примери в JavaScript:

// Преобразуване на непразен низ
console.log(!!'здравей'); // true

// Преобразуване на числото 0
console.log(!!0); // false

// Преобразуване на null
console.log(!!null); // false

// Преобразуване на undefined
console.log(!!undefined); // false

// Преобразуване на празен масив
console.log(!![]); // true

// Преобразуване на празен обект
console.log(!!{}); // true

Примери в Python (макар че в Python няма нативен оператор !!, може да се имитира поведението му):

# Имитация с bool()
print(bool('здравей')) # True
print(bool(0))         # False
print(bool([]))        # True
print(bool({}))        # True

# Имитация с not not
print(not not 'здравей') # True
print(not not 0)         # False
print(not not [])        # True
print(not not {})        # True

Основната цел е явното преобразуване към булев тип, което често се използва за проверка на "truthiness" (истинност) на стойност в контекста на булеви операции и условни конструкции.