मैं नहीं पता है, कि क्या यह इसके पीछे असली विचार है, लेकिन एक ऐतिहासिक इस पर दृश्य है: शुरुआत में
, एक सरणी प्रति संदर्भ में, जब से व्यवहार आपने इसमें एक आइटम बदल दिया। यह मूल्य से व्यवहार करता है, जब आपने सरणी की लंबाई बदल दी। उन्होंने इसे प्रदर्शन कारणों (कम सरणी प्रतिलिपि) के लिए किया था। लेकिन निश्चित रूप से यह था, एह, मैं राजनीतिक रूप से कैसे व्यक्त कर सकता हूं, एह, स्विफ्ट के साथ मुश्किल है, एह, चलो इसे "एक अच्छी संरचना की परवाह न करें अगर आप कुछ प्रदर्शन जीत सकते हैं, तो शायद आपको कभी भी आवश्यकता नहीं है" दृष्टिकोण । कुछ ने कॉपी-ऑन-राइट कहा, जो अधिक बुद्धिमान नहीं है, क्योंकि गाय पारदर्शी है, जबकि वह व्यवहार पारदर्शी नहीं था। विशिष्ट स्विफ्ट शब्द: एक buzzword का प्रयोग करें, इसे जिस तरह से उपयोग करें, यह स्विफ्ट के लिए फिट बैठता है, शुद्धता की परवाह नहीं है।
सरणियों पर बाद में प्रति व्यवहार से एक पूरा हो गया है, क्या कम भ्रामक है। (आपको याद है, स्विफ्ट पठनीयता के लिए था। स्पष्ट रूप से स्विफ्ट की अवधारणा में, पठनीयता का अर्थ है "पढ़ने के लिए कम वर्ण", लेकिन इसका मतलब यह नहीं है कि "बेहतर समझने योग्य"। विशिष्ट स्विफ्ट शब्द: एक buzzword का उपयोग करें, इसे जिस तरह से उपयोग करें, यह स्विफ्ट के लिए उपयुक्त है, शुद्धता के बारे में परवाह नहीं है। मैं पहले से ही है कि उल्लेख किया था?)
तो, मुझे लगता है कि यह अभी भी प्रदर्शन के साथ साथ समझा जा सकता व्यवहार शायद कम प्रदर्शन करने के लिए अग्रणी है। (आपको बेहतर पता चलेगा कि आपके कोड में एक प्रति की आवश्यकता है और आप अभी भी ऐसा कर सकते हैं और यदि आप स्रोत सरणी अपरिवर्तनीय हैं, तो आप कोको से 0-ऑपरेशन प्राप्त कर सकते हैं।) बेशक, वे कह सकते हैं: "ठीक है, मूल्य से था एक गलती, हमने इसे बदल दिया। " लेकिन वे कभी नहीं कहेंगे।
हालांकि, अब स्विफ्ट में सरणी लगातार व्यवहार करती है। स्विफ्ट में एक बड़ी प्रगति! शायद आप इसे एक प्रोग्रामिंग भाषा एक धूप दिन कह सकते हैं।
मैंने समस्याओं के उस प्रमुख स्रोत में कभी फंस नहीं लिया है। हालांकि, सरणी की प्रति कितनी गहरी है? और यह "समस्याओं का प्रमुख स्रोत" क्यों है, जब सरणी बदलती है, लेकिन "समस्याओं का प्रमुख स्रोत" नहीं होता है, जब उस सरणी में किसी आइटम ने अपनी किसी एक गुण को बदल दिया है? और स्विफ्ट टीम में वे क्यों सोचते थे कि किसी आइटम का परिवर्तन "समस्याओं का प्रमुख स्रोत" नहीं है, जबकि सरणी की लंबाई बदलना लंबे समय तक "समस्याओं का प्रमुख स्रोत" है और उन्होंने अपनी राय क्यों बदल दी? –
मैं आपसे अधिकतर सहमत हूं, लेकिन मुझे लगता है कि, ओब्जे-सी में यह डेवलपर्स की ज़िम्मेदारी है कि जब तक कोई अन्य विकल्प न हो, तब तक उत्परिवर्तनीय वस्तुओं को पास/अनुरोध न करें। गैर-परिवर्तनीय वस्तुओं को कॉलर की पीठ के पीछे संशोधित नहीं किया जा सकता है, इसलिए इस परिप्रेक्ष्य से आपका तर्क मुझे एक तरह से टूटा हुआ दिखता है। – holex
तर्क का मेरा बिंदु यह है कि "मेरी पीठ के पीछे संशोधन" अभ्यास में गंभीर समस्याएं नहीं पैदा करता है। यह स्विफ्ट के "हम एक समस्या को हल करते हैं जो केवल सैद्धांतिक रूप से मौजूद है" सुविधाओं में से एक है। क्या आपको केवल एक बार उत्पादन कोड में समस्या है? तो शुरुआत में कोई समस्या नहीं होने के लिए एक त्वरित और गंदे (असंगत) समाधान था और अब हमारे पास कोई समस्या नहीं है जो किसी भी समस्या के लिए लगातार समाधान करता है जो कभी-कभी और अधिक कठिन सोचता है और एक प्रदर्शन प्रिंट होगा। –