مشخصات مقاله
-
705
-
0.0
-
2051
-
0
-
0
آموزش ژنریک(Generic) در Kotlin
ژنریک(Generic) در Kotlin
Kotlin نیز مانند جاوا مرتبهی بالاتری از نوع بندی متغیرها را ارائه میکند که Generic نام دارد. در این بخش میخواهیم به چگونگی پیادهسازی Generic ها توسط Kotlin بپردازیم. همچنین به شما یاد خواهیم داد که چگونه بهعنوان یک برنامهنویس از این قابلیتهای موجود در کتابخانهی Generic استفاده کنید. Generic ها از نظر پیادهسازی کاملاً شبیه به جاوا هستند. اما توسعهدهندهی Kotlin دو واژهی کلیدی out و in را نیز معرفی کرده است تا بتواند کدهای Kotlin را برای برنامهنویس خواناتر و سادهتر کند.
در Kotlin کلاسها و نوعها مفاهیم کاملاً متفاوتی هستند. بهعنوان مثال List در Kotlin یک کلاس است. این در حالی است که List< String> یک نوع است. در مثال زیر چگونگی پیادهسازی Generic ها در Kotlin نشان داده شده است.
fun main(args: Array< String >) {
val integer: Int = 1
val number: Number = integer
print(number)
}
در کد بالا یک عدد صحیح اعلان شده است و پس از آن ما این متغیر را به یک متغیر عددی تخصیص دادهایم. دلیل احتمالی این امر این است که Int زیرکلاسی از کلاس Number است. به همین دلیل در زمان اجرا بهصورت خودکار تبدیل نوع اتفاق میافتد و خروجی 1 نمایش داده میشود. حالا بیایید در رابطه با Generic ها اطلاعات بیشتری کسب کنیم. هر زمان که در رابطه با نوع دادهی استفادهشده در برنامه مطمئن نیستید، بهتر است که از نوع دادهی Generic استفاده کنید. عموماً Generic ها در Kotlin توسط < T > تعریف میشوند که T بیانگر حرف اول template یا قالب است که خود بهصورت پویا توسط کامپایلر Kotlin تعیین میشود. در مثال زیر چگونگی استفاده از نوع دادهی Generic در زبان برنامهنویسی Kotlin نشان داده شده است.
fun main(args: Array< String >) {
var objet = genericsExample< String >("JAVA")
var objet1 = genericsExample< Int >(10)
}
class genericsExample< T >(input:T) {
init {
println("I am getting called with the value "+input)
}
}
در کد بالا یک کلاس با نوع برگشتی Generic ایجاد شده است که بهصورت
زمانی که بخواهیم نوع Generic را به یکی از ابَرنوع های آن تخصیص دهیم، در این صورت باید از واژهی کلیدی out استفاده کنیم. همچنین زمانی که بخواهیم نوع Generic را به یکی از زیرنوع های آن تخصیص دهیم در این صورت باید از واژهی کلیدی in استفاده کنیم. در کد زیر از واژهی کلیدی out استفاده شده است. بهطور مشابه میتوانید از واژهی کلیدی in استفاده کنید. نتیجهی کد بالا بهصورت زیر نمایش داده میشود.
I am getting called with the value JAVA
I am getting called with the value 10
fun main(args: Array< String >) {
var objet1 = genericsExample< Int >(10)
var object2 = genericsExample< Double >(10.00)
println(objet1)
println(object2)
}
class genericsExample< out T >(input:T) {
init {
println("I am getting called with the value "+input)
}
}
I am getting called with the value 10
I am getting called with the value 10.0
genericsExample@28d93b30
genericsExample@1b6d3586