जब मैं निम्नलिखित कोड का उपयोग करें और nameTextField "जेफरी" (या किसी अन्य नाम)स्विफ्ट स्ट्रिंग इंटरपोलेशन वैकल्पिक प्रदर्शित?
@IBAction func helloWorldAction(nameTextField: UITextField) {
nameLabel.text = "Hello, \(nameTextField.text)"
}
nameLabel प्रदर्शित करता है ... हैलो, वैकल्पिक ("जेफरी")
लेकिन, हो सकता है जब मैं बदल नहीं देते पिछले कोड को "!" शामिल करने के लिए इस तरह: "!"
@IBAction func helloWorldAction(nameTextField: UITextField) {
nameLabel.text = "Hello, \(nameTextField.text!)"
}
उम्मीद और nameLabel प्रदर्शित करता है .... हैलो के रूप में कोड काम करता है, जेफरी
क्यों है आवश्यक, वीडियो ट्यूटोरियल में मैं इस सरल कार्यक्रम को बनाने के लिए प्रयोग करता था, उसने "!" का उपयोग नहीं किया और कार्यक्रम अपेक्षित के रूप में काम किया।
बिल्कुल सही, धन्यवाद! –
स्ट्रिंग इंटरपोलेशन के लिए स्विफ़ के रचनाकारों द्वारा यह एक भयानक डिज़ाइन पसंद की तरह लगता है। मैं किसी अन्य भाषा के बारे में नहीं जानता जो यह करता है। अगर यह मौजूद है तो अनचाहे मूल्य को प्रिंट करने के लिए यह और अधिक समझ में आता है, अन्यथा रिक्त या शून्य प्रिंट करें। या स्ट्रिंग इंटरपोलेशन के अंदर विकल्प को अनुमति न दें। इसने हमारे लिए बहुत सारी बग पैदा की है। – bobics