2016-03-23 15 views
18

में हटा दिया जाएगा Xcode 7.3 पर अपडेट करने के बाद, मेरे प्रोजेक्ट में चेतावनियां दिखाई दे रही हैं।'++' को बहिष्कृत किया गया है: इसे स्विफ्ट 3

'++' अब मान्य नहीं है: यह स्विफ्ट 3

किसी भी विचार में इस चेतावनी को ठीक करने के लिए निकाल दिया जाएगा? किसी भी कारण से ++ और -- भविष्य में बहिष्कृत क्यों किया जाएगा?

+0

निश्चित रूप से एक डुप्लिकेट ... हालांकि वह प्रश्न _beta_ (और 3 फरवरी दिनांकित है) के बारे में है, जबकि यह _official release_ के बारे में है (दिनांक 23 मार्च, Xcode 7.3 स्टोर के बाद दिन) ... क्या करता है एक ऐसे मामले में करते हैं? –

+1

@ निकोलसमीरी बस इसे बंद करने के लिए वोट दें। यह अभी भी एक्सकोड 7.3 है, हम केवल "बीटा" को हटाने के लिए प्रश्न को संपादित कर सकते हैं। – Sulthan

उत्तर

42

स्विफ्ट 2.2 के बाद से, आपको += 1 या -= 1 का उपयोग करना चाहिए। - या किसी अन्य मामले में जहां आप डॉन

  1. इन ऑपरेटरों स्विफ्ट पहली बार एक प्रोग्रामिंग भाषा के रूप में जानने के लिए बोझ बढ़ाने:

    और स्विफ्ट के विकास को देख के बाद, इन ऑपरेटरों को दूर करने के लिए कुछ कारण हैं इन ऑपरेटरों को एक अलग भाषा से पहले ही नहीं जानते हैं।

  2. उनके अर्थपूर्ण लाभ कम है - एक्स ++ से नहीं बहुत कम है x + = 1.

  3. स्विफ्ट पहले से ही सी से कि में =, + = और अन्य काम-जैसे कार्य शून्य रिटर्न (एक के लिए भटक कारणों की संख्या)। ये ऑपरेटर उस मॉडल के साथ असंगत हैं।

  4. स्विफ्ट में शक्तिशाली विशेषताएं हैं जो आप अन्य भाषाओं में लूप के लिए सी-स्टाइल में ++ उपयोग करने के कई सामान्य कारणों को खत्म कर देते हैं, इसलिए इन्हें अपेक्षाकृत कम से कम लिखित स्विफ्ट कोड में उपयोग किया जाता है। इन सुविधाओं में फॉर-इन लूप, रेंज, एन्युमेरेट, मैप इत्यादि शामिल हैं।

  5. कोड जो वास्तव में इन ऑपरेटरों के परिणाम मान का उपयोग करता है वह अक्सर कोड के पाठक/रखरखाव के लिए भ्रमित और सूक्ष्म होता है। वे "अत्यधिक मुश्किल" कोड को प्रोत्साहित करते हैं जो प्यारा हो सकता है, लेकिन समझना मुश्किल है।

  6. जबकि स्विफ्ट के मूल्यांकन के अच्छी तरह से परिभाषित क्रम है, किसी भी कोड पर निर्भर करता है (जैसे foo (++ a, a ++)) यह भी अवांछित होगा भले ही यह अच्छी तरह से परिभाषित किया गया हो।

  7. ये ऑपरेटर अपेक्षाकृत कुछ प्रकारों पर लागू होते हैं: पूर्णांक और फ़्लोटिंग पॉइंट स्केलर, और इटरेटर जैसी अवधारणाएं। वे जटिल संख्या, मैट्रिक्स, आदि पर लागू नहीं हैं

अंत में, इनमें से मीट्रिक असफल "अगर हम पहले से ही ऐसा नहीं किया इन हैं तो हम उनका स्विफ्ट 3 करने के लिए जोड़ होगा?"

अधिक जानकारी के लिए कृपया Swift evolution देखें।

+8

यदि 'x + = 1 x ++ का प्रतिनिधित्व करता है; क्या होगा यदि '++ x'? –

+4

मैं स्रोत या प्रूफ संख्या 1,5,6 – Zuzlx

+0

बेवकूफ विचार देखना चाहता हूं। सभी नए ब्रांड सिंटैक्स चीनी से भरा स्विफ्ट, लेकिन वे क्लासिक ... बकवास हटा रहे हैं –

संबंधित मुद्दे