2012-07-28 26 views
6

क्या कोई बंद करने और निरंतरता के बीच अंतर को समझा सकता है? विकिपीडिया में संबंधित लेख वास्तव में दोनों के बीच मतभेदों की तुलना नहीं करते हैं।बंद और निरंतरता के बीच अंतर

उत्तर

6

एक बंद करना एक ऐसा कार्य है जो पर्यावरण से डेटा को कैप्चर करता है जिस पर इसे घोषित किया गया था।

int myVar = 0; 
auto foo = [&]() { myVar++; }; <- This lambda forms a closure by capturing myVar 
foo(); 
assert(myVar == 1); 

एक निरंतरता एक और सार अवधारणा है, और यह संदर्भित करती है कि बाद में कौन सा कोड निष्पादित किया जाना चाहिए। इसे बंद करने के द्वारा लागू किया जा सकता है।

myTask = Task([]() { something(); }); 
myTask.then([=]() { myFoo.bar(); }); // This closure is the continuation of the task 
myTask.run();