কোনও প্রোগ্রাম বোঝার চেষ্টা করার সময়, বা কোনও কোনও কোণে, আসলে কী ধরণের তা আসলে খুঁজে পেতে সক্ষম হওয়া দরকারী useful আমি জানি যে ডিবাগার আপনাকে কিছু প্রকারের তথ্য প্রদর্শন করতে পারে এবং আপনি সাধারণত সেই ধরণের পরিস্থিতি উল্লেখ না করে পালিয়ে যাওয়ার জন্য টাইপ অনুক্রমের উপর নির্ভর করতে পারেন, তবে তবুও আমি সত্যই পাইথনের মতো কিছু পেতে চাইtype()
ডায়নামিক টাইপ ( এই প্রশ্নটি দেখুন )
আপডেট: এটি সুইফটের সাম্প্রতিক সংস্করণে পরিবর্তিত হয়েছে, obj.dynamicType
এখন আপনি টাইপটির জন্য একটি রেফারেন্স দেয়, গতিশীল টাইপের উদাহরণ নয়।
এটি একটি সবচেয়ে প্রতিশ্রুতিবদ্ধ বলে মনে হয়, তবে এখনও পর্যন্ত আমি আসল ধরণটি সন্ধান করতে পারিনি
class MyClass {
var count = 0
}
let mc = MyClass()
# update: this now evaluates as true
mc.dynamicType === MyClass.self
আমি কোনও নতুন অবজেক্টটি ইনস্ট্যান্ট করতে ক্লাসের রেফারেন্সটি ব্যবহার করার চেষ্টাও করেছি, যা কাজ করে তবে অদ্ভুতভাবে আমাকে ত্রুটি দিয়েছিল যে আমাকে অবশ্যই একটি required
আরম্ভকারী অবশ্যই যুক্ত করতে হবে :
কাজ করে:
class MyClass {
var count = 0
required init() {
}
}
let myClass2 = MyClass.self
let mc2 = MyClass2()
এখনও কোনও প্রদত্ত বস্তুর প্রকারটি আবিষ্কার করার দিকে কেবল একটি ছোট পদক্ষেপ
সম্পাদনা : আমি এখন যথেষ্ট অপ্রাসঙ্গিক বিবরণ সরিয়েছি - আপনার আগ্রহী হলে সম্পাদনার ইতিহাস দেখুন :)
print(mc)
বা dump(mc)
একটি সারাংশ (যা থেকে আপনি পেতে পারেন toString(mc)
বা reflect(mc).summary
) মুদ্রণ করবে, এতে কোথাও কোথাও শ্রেণীর নাম থাকবে। তবে কীভাবে নিজের নিজের ক্লাসের নাম পাবেন তা পরিষ্কার নয়।