Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

คำหลักที่แก้ไขแล้วทำงานอย่างไรใน Kotlin


"ฟื้นคืนชีพ" เป็นคีย์เวิร์ดชนิดพิเศษที่ช่วยให้นักพัฒนา Kotlin เข้าถึงข้อมูลที่เกี่ยวข้องกับคลาสในขณะใช้งานจริง "ฟื้นคืนชีพ" ใช้ได้เฉพาะกับ อินไลน์ ฟังก์ชั่น. เมื่อ "ฟื้นคืนชีพ" มีการใช้คีย์เวิร์ด คอมไพเลอร์จะคัดลอก bytecode ของฟังก์ชันไปยังทุกส่วนของโค้ดที่มีการเรียกใช้ฟังก์ชัน ด้วยวิธีนี้ ประเภททั่วไป T จะถูกกำหนดให้กับประเภทของค่าที่ได้รับเป็นอาร์กิวเมนต์

ตัวอย่าง

ในตัวอย่างนี้ เราจะมาดูกันว่า "ฟื้นคืนชีพ" มีประโยชน์ในการใช้โค้ดของเราซ้ำ และใช้ฟังก์ชันเดียวกันเพื่อดำเนินการประเภทเดียวกันโดยไม่คำนึงถึงอาร์กิวเมนต์ที่ส่งผ่าน

สำหรับตัวอย่างนี้ เราได้สร้างฟังก์ชัน Inline และกำลังส่ง "reified" ทั่วไป อาร์กิวเมนต์ T และจาก main() ของ Kotlin เรากำลังเรียก myExample() หลายครั้งด้วยข้อโต้แย้งที่แตกต่างกัน

// Declaring Inline function
inline fun <reified T> myExample(name: T) {
   println("\nName of your website -> "+name)
   println("\nType of myClass: ${T::class.java}")
}

fun main() {

   // calling func() with String
   myExample<String>("www.tutorialspoint.com")

   // calling func() with Int value
   myExample<Int>(100)

   // calling func() with Long value
   myExample<Long>(1L)

}

ผลลัพธ์

มันจะสร้างผลลัพธ์ต่อไปนี้ -

Name of your website -> www.tutorialspoint.com

Type of myClass: class java.lang.String

Name of your website -> 100

Type of myClass: class java.lang.Integer

Name of your website -> 1

Type of myClass: class java.lang.Long