2014-07-26 12 views
11

में अस्थिर चर घोषित करने के लिए कैसे मैं उद्देश्य से सी कोड से स्विफ्ट में कनवर्ट करना चाहता हूं;स्विफ्ट

int sum = 0; 
x = 1; 
for (int i = 0; i < 100; i++) { 
    sum += x; 
} 

x अन्य धागे से सुलभ है। तो एक्स को अस्थिर चर के रूप में घोषित किया गया है।

volatile int x; 

मुझे स्विफ्ट में यह कोड कैसे लिखना चाहिए?

+11

'अस्थिर 'अन्य धागे से एक चर को सुलभ नहीं बनाता है। यह इंगित करने के लिए प्रयोग किया जाता है कि एक चर एक हार्डवेयर रजिस्टर की तरह व्यवहार करता है। इसके बजाए एक म्यूटेक्स लॉक का प्रयोग करें। – Potatoswatter

+1

यह प्रश्न ऑफ़-विषय प्रतीत होता है क्योंकि मूल आधार गलत है क्योंकि आप दावा करते हैं कि अस्थिर ऐसा नहीं करता है, इसलिए हम इसे – Mark

+0

परिवर्तित नहीं कर सकते हैं मेरे खराब छद्म कोड के लिए खेद है। मुझे पता है कि Potatoswatter क्या कहा। मेरे उद्देश्य-सी कोड को पोर्ट करने पर, अस्थिर की आवश्यकता होती है, क्योंकि अन्य थ्रेड परिवर्तनीय एक्स को अद्यतन कर सकता है और संदर्भों को नवीनतम मान को इंगित करने की आवश्यकता होती है। –

उत्तर

-1

स्विफ्ट में आपको अस्थिर कीवर्ड की तुलना में मूल्यों की वैश्विक synchronicity - विशेष रूप से प्रकार के स्तर पर व्यक्त करने के अधिक शक्तिशाली साधनों तक पहुंच है। उदाहरण के लिए, आप एक चर को पढ़ने और लिखने के सिंक्रनाइज़ करने के लिए ताले चुन सकते हैं। आप यह इंगित करने के लिए MVar का उपयोग करना चुन सकते हैं कि एक चर के पास एकाधिक धागे में केवल 1 संभावित मान्य स्थिति होनी चाहिए। या आप स्विफ्ट में समस्या को व्यक्त नहीं करना चुन सकते हैं। चूंकि भाषा आयातित कोड से अस्थिर क्वालीफायरों को स्ट्रिप करती है, ऐसा लगता है कि इस सुविधा का लाभ उठाने वाले अनुप्रयोगों को सी या ऑब्जेक्टिव-सी का उपयोग करना चाहिए और किसी भी इच्छुक स्विफ्ट कोड में इंटरफ़ेस प्रस्तुत करना चाहिए।

+0

क्या आप इस प्रश्न को देख सकते हैं http://stackoverflow.com/questions/34601888/does-every-pure-function-should-have-fixed-points और अपने विचारों को स्पष्ट करें? अग्रिम में धन्यवाद। – MainstreamDeveloper00