क्योंकि यौगिक असाइनमेंट ऑपरेटर +=
उम्मीद बाईं ओर एक परिवर्तनशील Int
चर होने के लिए यह काम नहीं करता। जब आप इसे count
पास करते हैं, तो कंपाइलर पूरी तरह से अनचाहे वैकल्पिक को अनचाहे करता है और इसके बजाय एक अपरिवर्तनीय Int
मान भेजता है, जिसे inout
पैरामीटर के रूप में पारित नहीं किया जा सकता है जो +=
अपेक्षा करता है।
तुम सच में ऐसा करना चाहते हैं, तो आप +=
ओवरलोड कर सकते हैं:
func += (left: inout Int!, right: Int) {
left = left! + right
}
अब +=
यह unwrapping के बिना एक परोक्ष unwrapped वैकल्पिक के रूप में बाईं ओर भेजता है, और unwrapping समारोह के अंदर स्पष्ट रूप से किया जाता है।
var count: Int! = 10
count = count + 10 // 20
count += 10 // 30
ऑपरेटर को संदर्भ की आवश्यकता है। – Sulthan
क्या आप इसे और समझा सकते हैं? –
फ़ंक्शन "+ =" एक इंट व्यय करता है। आप इसे एक इंट दे रहे हैं! – scord