توابع (Functions) در kotlin
سلام توسعه دهندگان عزیز در این سری از آموزش برنامه نویسی اندروید به زبان Kotlin به آموزش توابع (Functions) در kotlin می پردازیم در این آموزش یاد می گیرید چگونه تابع (Function) تعریف کنید و چگونه از Functionاستفاده کنید در ادامه با ما همراه باشید تا توابع (Functions) در کوتلین (kotlin) را یاد گیرید.
برای ایجاد تابع در Kotlin لازم است از کلمه کلید Fun استفاده کنید که از سه کلمه function گرفته شده است در ادامه یک نمونه مثال ساده از تابع (Function) را می توانید مشاهده کنید.
1 2 3 | fun double(x: Int): Int { return 2 * x } |
در بالا ما یک function به نام double تعریف کردیم که کار آن این است که هر عددی به آن بدهید آن را دو برابر می کند (در دو ضرب می کند)
نحوه استفاده از Function بالا همانند زیر است.
1 | val result = double(2) |
اگر function دارای یک Child باشد می توانید با استفاده از dot آن را فراخوانی کنید مثل زیر
1 | Sample().foo() |
هر Function می توان ورودی داشته باشد یا نداشته باشد مثل زیر
1 | fun powerOf(number: Int, exponent: Int) { ... } |
در تابع بالا ما دو ورودی در نظر گرفتیم که هر دو از نوع int هستند.
امکان Overriding method ها نیز همانند زیر وجود دارد.
1 2 3 4 5 6 | open class A { open fun foo(i: Int = 10) { ... } } class B : A() { override fun foo(i: Int) { ... } // no default value allowed } |
در بالا دو کلاس وجود دارد که کلاس B از کلاس A ارث بری کرده است و مقدار پیشفرض به تابع کلاس A مجاز است ولی برای Class دومی که B باشد خیر.
1 2 | fun foo(bar: Int = 0, baz: Int) { ... } foo(baz = 1)// The default value bar = 0 is used |
اگر در هنگان تعریف تابع (Function) مقدار پیشفرض را مشخص کنیم می توان تابع را بدون دادن ورودی استفاده کرد در اینصورت مقدار پیشفرض استفاده می شود.
1 2 3 | fun foo(bar: Int = 0, baz: Int = 1, qux: () -> Unit) { ... } foo(1) { println("hello") } // Uses the default value baz = 1 foo { println("hello") } // Uses both default values bar = 0 and baz = 1 |
امکان استفاده از Lambda در kotlin نیز برای تعریف تابع (Function) وجود دارد.
Lambda چیست ؟