Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

kotlin extension functions و معادل آن ها در جاوا #252

Open
narjesmansoori opened this issue Mar 6, 2021 · 2 comments
Open
Labels

Comments

@narjesmansoori
Copy link

No description provided.

@arenshaee
Copy link

جاوا بصورت پیشفرض همچین ویژگی ای رو نداره، ولی با استفاده از کتابخونه Lombok و انوتیشن @ExtensionMethod، میشه این امکان رو پیاده سازی کرد.

برای مطالعه بیشتر، این لینک مستندات رسمی خود کتابخونست.

@MohsenNooriArdestani
Copy link

آموزش گسترش توابع در کاتلین (kotlin extension function):

گاهی در هنگام برنامه‌نویسی به یک تابع یا قابلیت خاصی از یک کلاس نیاز پیدا می‌کنید که ممکن است در آن کلاس وجود نداشته باشد. این کلاس می‌تواند یکی از کلاس‌هایی باشد که توسط خود زبان ارائه می‌شود. برای اضافه کردن آن قابلیت در کلاس چه کاری انجام می‌دهید؟

راه حل رایج برای رفع این مشکل این است که در پروژه‌ی خود کلاس جدیدی بسازیم که از کلاس مورد نظر ارث بری کند و هر کجا به این ویژگی نیاز پیدا کردیم کلاس توسعه یافته‌ی خودمان را فراخوانی کرده و از آن استفاده کنیم. راه حل دیگر رفع این مشکل با استفاده از الگوهایی مانند Decorator است که پیچیدگی‌های خاص خودش را دارد.

در این مقاله در مورد یکی دیگر از ویژگی‌های جدید زبان kotlin به نام “Extension” صحبت خواهیم. با استفاده از گسترش توابع در کاتلین قادر خواهیم بود توابع و قابلیت‌های دلخواهمان را به کلاس مورد نظر حتی بدون وراثت و یا اصلاح آنها اضافه و یا حذف کنیم.

extension function:

همان‌طور که گفتیم برای افزودن یک تابع (function) یا قابلیت‌های یکی از کلاس‌های ارائه شده توسط زبان کاتلین مانند String و List و Toast و … می‌توانیم از ویژگی Extension در این زبان استفاده کنیم. به تابعی که به کلاس موجود اضافه می‌شود و توسط آن ویژگی جدید به آن کلاس اضافه می‌شود، تابع گسترش (extension function) می‌گویند. و کلاس مرجعی که تابع گسترش به آن اضافه شده است Receiver Type نامیده می‌شود.

مرجع کامل:
https://7learn.com/blog/kotlin-extension-function

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants