दरअसल, ऐसा महसूस होता है कि स्विफ्ट स्ट्रिंग्स को वस्तुओं की तरह कम और मूल्यों की तरह व्यवहार करने के लिए बढ़ावा देने की कोशिश कर रहा है। हालाँकि, इसका मतलब यह नहीं है कि हुड स्विफ्ट के तहत स्ट्रिंग्स को ऑब्जेक्ट के रूप में व्यवहार नहीं करता है, जैसा कि आप सभी ने देखा है कि आप अभी भी स्ट्रिंग्स पर तरीकों को लागू कर सकते हैं और उनके गुणों का उपयोग कर सकते हैं।
उदाहरण के लिए:-
//example of calling method (String to Int conversion)
let intValue = ("12".toInt())
println("This is a intValue now \(intValue)")
//example of using properties (fetching uppercase value of string)
let caUpperValue = "ca".uppercaseString
println("This is the uppercase of ca \(caUpperValue)")
ऑब्जेक्ट सी में आप एक चर ऑब्जेक्ट के संदर्भ को एक चर के माध्यम से पास कर सकते हैं, उस पर कॉलिंग विधियों के शीर्ष पर, जो कि इस तथ्य को स्थापित करता है कि तार शुद्ध ऑब्जेक्ट हैं।
जब आप स्ट्रिंग को ऑब्जेक्ट के रूप में देखने का प्रयास करते हैं, तो यहां पकड़ है, तेजी से आप एक चर ऑब्जेक्ट को एक चर के माध्यम से संदर्भ द्वारा पारित नहीं कर सकते। स्विफ्ट हमेशा स्ट्रिंग की एक नई प्रति पारित करेगी। इसलिए, स्ट्रिंग्स को आमतौर पर स्विफ्ट में मूल्य प्रकार के रूप में जाना जाता है। वास्तव में, दो स्ट्रिंग लीटर समान नहीं होंगे (===)। उन्हें दो अलग-अलग प्रतियों के रूप में माना जाता है।
let curious = ("ca" === "ca")
println("This will be false.. and the answer is..\(curious)")
जैसा कि आप देख सकते हैं कि हम स्ट्रिंग्स को वस्तुओं के रूप में सोचने के पारंपरिक तरीके से तोड़ना शुरू कर रहे हैं और उन्हें अधिक मूल्यों की तरह व्यवहार कर रहे हैं। इसलिए .isEqualToString जो स्ट्रिंग ऑब्जेक्ट्स के लिए एक पहचान ऑपरेटर के रूप में व्यवहार किया गया था वह अधिक वैध नहीं है क्योंकि आप स्विफ्ट में दो समान स्ट्रिंग ऑब्जेक्ट कभी नहीं प्राप्त कर सकते हैं। आप केवल इसके मूल्य की तुलना कर सकते हैं, या दूसरे शब्दों में समानता (==) की जांच कर सकते हैं।
let NotSoCuriousAnyMore = ("ca" == "ca")
println("This will be true.. and the answer is..\(NotSoCuriousAnyMore)")
यह तब और दिलचस्प हो जाता है जब आप स्विफ्ट में स्ट्रिंग ऑब्जेक्ट की उत्परिवर्तन को देखते हैं। लेकिन एक और सवाल, एक और दिन के लिए। आपको जिस चीज़ पर ध्यान देना चाहिए, वह वास्तव में दिलचस्प है। :) आशा है कि कुछ भ्रम को साफ करता है। चीयर्स!
===
पहचान ऑपरेटर है जबकि==
समानता ऑपरेटर (isEqual:
NSObject और उसके उपवर्गों पर डिफ़ॉल्ट कॉल द्वारा )