Sobes.tech
Junior

Čo robí operátor dvojitých výkričníkov v programovacom jazyku?

sobes.tech AI

Odpoveď od AI

Prevedie hodnotu na boolean. Je ekvivalentné dvojitému použitiu operátora nie (!).

Prvý ! prevedie hodnotu na typ boolean a invertuje ju. Napríklad, ne-prázdny reťazec 'abc' sa stáva false, a 0 sa stáva true. Druhý ! invertuje výsledok prvého, vracajúc pôvodnú booleanovú reprezentáciu hodnoty. Takže 'abc' sa stáva true, a 0 sa stáva false.

Príklady v JavaScripte:

// Prevod ne-prázdneho reťazca
console.log(!!'ahoj'); // true

// Prevod čísla 0
console.log(!!0); // false

// Prevod null
console.log(!!null); // false

// Prevod undefined
console.log(!!undefined); // false

// Prevod prázdneho poľa
console.log(!![]); // true

// Prevod prázdneho objektu
console.log(!!{}); // true

Príklady v Pythone (hoci v Pythone nie je nativný operátor !!, dá sa jeho správanie emulovať):

# Emulácia pomocou bool()
print(bool('ahoj')) # True
print(bool(0))     # False
print(bool([]))    # True
print(bool({}))    # True

# Emulácia pomocou not not
print(not not 'ahoj') # True
print(not not 0)     # False
print(not not [])    # True
print(not not {})    # True

Hlavným cieľom je explicitná konverzia na boolean, ktorá sa často používa na kontrolu "truthiness" (pravdivosti) hodnoty v kontexte booleanových operácií a podmienok.