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.