Sobes.tech
Junior

Mit csinál a dupla felkiáltójel operátor a programozási nyelvben?

sobes.tech MI

Válasz az MI-től

Értéket alakít logikai értékké. Ez megegyezik a nem (!) operátor kétszeri alkalmazásával.

Az első ! a értéket logikai típussá alakítja, és invertálja. Például, egy nem üres string 'abc' false lesz, és a 0 true. A második ! invertálja az első eredményt, visszaadva az érték eredeti logikai reprezentációját. Így 'abc' true, a 0 pedig false lesz.

JavaScript példák:

// Nem üres string átalakítása
console.log(!!'szia'); // true

// A 0 szám átalakítása
console.log(!!0); // false

// null átalakítása
console.log(!!null); // false

// undefined átalakítása
console.log(!!undefined); // false

// Üres tömb átalakítása
console.log(!![]); // true

// Üres objektum átalakítása
console.log(!!{}); // true

Python példák (bár Pythonban nincs natív !! operátor, utánozható a viselkedése):

# bool() segítségével
print(bool('szia')) # True
print(bool(0))     # False
print(bool([]))    # True
print(bool({}))    # True

# not not segítségével
print(not not 'szia') # True
print(not not 0)     # False
print(not not [])    # True
print(not not {})    # True

A fő cél az érték explicit átalakítása boolean típusra, amit gyakran használnak "truthiness" (igazságérték) ellenőrzésére boolean műveletek és feltételes szerkezetek kontextusában.