Sobes.tech
Junior

Co dělá operátor dvojitého vykřičníku v programovacím jazyce?

sobes.tech AI

Odpověď od AI

Převádí hodnotu na boolean. Je ekvivalentní dvojitému použití operátoru ne (!).

První ! převádí hodnotu na typ boolean a invertuje ji. Například, ne-prázdný řetězec 'abc' se stává false, a 0 se stává true. Druhý ! invertuje výsledek prvního, vrací původní booleanovou reprezentaci hodnoty. Takže 'abc' se stává true, a 0 se stává false.

Příklady v JavaScriptu:

// Převod ne-prázdného řetězce
console.log(!!'ahoj'); // true

// Převod čísla 0
console.log(!!0); // false

// Převod null
console.log(!!null); // false

// Převod undefined
console.log(!!undefined); // false

// Převod prázdného pole
console.log(!![]); // true

// Převod prázdného objektu
console.log(!!{}); // true

Příklady v Pythonu (ačkoliv v Pythonu není nativní operátor !!, lze jeho chování emulovat):

# Emulace pomocí bool()
print(bool('ahoj')) # True
print(bool(0))     # False
print(bool([]))    # True
print(bool({}))    # True

# Emulace pomocí not not
print(not not 'ahoj') # True
print(not not 0)     # False
print(not not [])    # True
print(not not {})    # True

Hlavním cílem je explicitní převod na boolean, který se často používá k ověření "truthiness" hodnoty v kontextu booleovských operací a podmíněných struktur.