Junior
Какво прави операторът двойно удивителен знак в езика за програмиране?
sobes.tech AI
Отговор от AI
Преобразува стойност в булев. Еквивалентен е на двойното прилагане на оператора не (!).
Първият ! преобразува стойността в булев тип и я инвертира. Например, непразен низ 'abc' става false, а 0 — true.
Вторият ! инвертира резултата от първия, връщайки оригиналното булево представяне на стойността. Така 'abc' става true, а 0 — false.
Примери в 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" (истинност) на стойност в контекста на булеви операции и условни конструкции.