Sobes.tech
Junior

Ի՞նչ է անում երկու հևքի նշանի օպերատորը ծրագրավորման լեզվում։

sobes.tech AI

Պատասխան AI-ից

Արժեքը փոխում է բուլեո։ Սա համընկնում է ոչ (!) օպերատորի կրկնակի կիրառման հետ։

Առաջին ! փոխում է արժեքը բուլեո տիպի և հակադարձում այն։ Օրինակ, ոչ դատարկ տող 'abc' դառնում է false, իսկ 0true։ Երկրորդ ! հակադարձում է առաջինի արդյունքը և վերադարձնում է արժեքի սկզբնական բուլեո ներկայացումը։ Այսպիսով, 'abc' դառնում է true, իսկ 0false։

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) ստուգման համար բուլեո օպերացիաների և պայմանական կառուցվածքների կոնտեքստում։