আমারও এই সমস্যা ছিল এবং আমি আমার মামলার জন্য একটি সমাধান খুঁজে পেয়েছি।
এই নিবন্ধে লেখক একই সমস্যা আছে
https://www.iphonelife.com/blog/31369/swift-programming-101- জেনারিকস- প্র্যাকটিকাল- গাইড
সুতরাং সমস্যাটি মনে হচ্ছে, যে সংকলকটি কোনওভাবে টি এর ধরণের অনুমান করা দরকার। তবে এটি কেবল জেনেরিক <টাইপ> (প্যারাম ...) ব্যবহার করার অনুমতি নেই।
সাধারণত, সংকলক টি প্যারামিটারের ধরণগুলি স্ক্যান করে টি এর ধরণের সন্ধান করতে পারে কারণ এখানেই অনেক ক্ষেত্রে টি ব্যবহৃত হয়।
আমার ক্ষেত্রে এটি কিছুটা আলাদা ছিল, কারণ আমার ফাংশনের রিটার্নের ধরনটি টি ছিল your আপনার ক্ষেত্রে মনে হয় আপনি আপনার ফাংশনে টি ব্যবহার করেন নি। আমার ধারণা আপনি উদাহরণ কোডটি সহজ করেছেন।
সুতরাং আমি নিম্নলিখিত ফাংশন আছে
func getProperty<T>( propertyID : String ) -> T
এবং উদাহরণস্বরূপ, ক্ষেত্রে
getProperty<Int>("countProperty")
সংকলকটি আমাকে ত্রুটি দেয়:
স্পষ্টভাবে একটি জেনেরিক ফাংশন বিশেষজ্ঞ করতে পারে না
সুতরাং, সংস্থাপকটিকে টি এর ধরণের অনুমানের জন্য আরও একটি উত্সের সূত্র দেওয়ার জন্য, আপনাকে ফেরতের মানটি সংরক্ষণ করা পরিবর্তনশীলের প্রকারটি স্পষ্টভাবে ঘোষণা করতে হবে।
var value : Int = getProperty("countProperty")
এইভাবে সংকলক জানে যে টি একটি পূর্ণসংখ্যা হতে হবে।
সুতরাং আমি মনে করি সামগ্রিকভাবে এর অর্থ হ'ল আপনি যদি জেনেরিক ফাংশন নির্দিষ্ট করে থাকেন তবে আপনাকে কমপক্ষে আপনার প্যারামিটারের ধরনগুলিতে বা কোনও রিটার্ন টাইপ হিসাবে টি ব্যবহার করতে হবে।