ওভারভিউ
"reified" হলো একটি বিশেষ ধরনের কীওয়ার্ড যা কোটলিন ডেভেলপারদের রানটাইমে ক্লাস সংক্রান্ত তথ্য অ্যাক্সেস করতে সাহায্য করে। "reified" শুধুমাত্র inline ফাংশনগুলির সাথে ব্যবহার করা যেতে পারে। "reified" কীওয়ার্ড ব্যবহার করা হলে, কম্পাইলার ফাংশনের বাইটকোডটি কোডের בכל সেকশনে কপি করে যেখানে ফাংশনটি কল করা হয়েছে। এইভাবে, জেনেরিক টাইপ T আর্গুমেন্ট হিসেবে যা মান পায় তার টাইপে অ্যাসাইন করা হয়।
উদাহরণ
এই উদাহরণে, আমরা দেখব "reified" কীভাবে আমাদের কোড পুনঃব্যবহার করতে সাহায্য করে এবং একই ফাংশন ব্যবহার করে তার আর্গুমেন্ট নির্বিশেষে একই ধরনের অপারেশন করা যায়।
এই উদাহরণের জন্য, আমরা একটি ইনলাইন ফাংশন তৈরি করেছি এবং একটি জেনেরিক "reified" আর্গুমেন্ট T পাস করছি এবং কোটলিনের main()- থেকে ভিন্ন আর্গুমেন্ট সহ myExample() একাধিকবার কল করছি।
// ইনলাইন ফাংশন ঘোষণা
inline fun <reified T> myExample(name: T) {
println("\nআপনার ওয়েবসাইটের নাম -> " + name)
println("\nmyClass-এর টাইপ: ${T::class.java}")
}
fun main() {
// String সহ func() কল
myExample<String>("www.tutorialspoint.com")
// Int মান সহ func() কল
myExample<Int>(100)
// Long মান সহ func() কল
myExample<Long>(1L)
}
আউটপুট
আপনার ওয়েবসাইটের নাম -> www.tutorialspoint.com myClass-এর টাইপ: class java.lang.String আপনার ওয়েবসাইটের নাম -> 100 myClass-এর টাইপ: class java.lang.Integer আপনার ওয়েবসাইটের নাম -> 1 myClass-এর টাইপ: class java.lang.Long