ICT_NoteTaking
ICT_NoteTaking
خواندن ۳ دقیقه·۵ سال پیش

Scope Function IN Kotlin - Let بخش دوم

برگشتیم برای بخش دوم و معرفی تابع let . و قراره کلی مثال با هم کار کنیم. و امیدوارم بخش اول مفید بوده باشه واستون.

در بعضی از مثال ها ترجیح دادم از متن اصلی استفاده کنم چون برگردانش به فارسی اون منظور و هدف رو
به خوبی بیان نمیکنه.( البته یه خورده هم سختمه این کار ? در حد I am windows بلدم انگلیسی ?)
* قسمت های ستاره دار از یک منبع دیگه بغییر از سایت kotlinlang.org استخراج شده است

برای کمک به شما در انتخاب عملکرد دامنه/ scope function درست در پروژه قرار که جزئیات هرکدوم رو شرح بدیم. و توصیه های برای استفاده از این توابع. از نظر فنی این توابع عملکرد های مشابه ای دارند و میتونند به جای هم قابل استفاده باشند.

1 - let

The context object is available as an argument (it). The return value is the lambda result.

زمینه آبجکت به عنوان یک آرگومان در دسترس است. مقدار بازگشتی نتیجه لامبدا می باشد.

* یا به تعریف دیگه: let شی مورد نظر را به عنوان پارامتر مورد استفاده قرار میدهد و نتیجه عبارت لامبدا را برمیگرداند. let یک scope function است که متغیر های که در داخل عبارت یا اون منطقه فانکشن تعریف میشند در بیرون از اون تابع قابل استفاده نیستند.

Hello World

* همچنین این نکته رو هم مد نظر داشته باشید که آخرین خط در let به عنوان استدلال/آرگومان برگردانده میشود. مثال زیر رو ببنید.

strLength is 20

* همانطور که میبینید خط 5 اجرا شده و طبق تعریف بالا آخرین برگشت داده میشه. جای که عبارت let^ باشد (خط قرمز) - حالا اگه جای خط 4 و 5 با هم عوض بشه کلا ورق بر میگرده.

strLength is HELLO WORLD


این تابع می توان برای استناد به یک یا چند عملکرد در نتایج زنجیره های تماس استفاده کرد. به عنوان مثال ، کد زیر نتایج دو عملیات را روی یک مجموعه چاپ می کند:

[5, 4, 4]


* یا به تعریف دیگه: همانطور که در مثال پایین می بینید ما یک متغیر محلی "i" را در داخل تابع let دوم اعلام کردیم. تنظیم آخرین عبارت از تابع let به i ویژگی را به خاصیت بیرونی برمی گرداند.

با استفاده از let میتونیم it رو دوباره نویسی کنیم.

[5, 4, 4]


* میتونیم از let بصورت تو در تو هم استفاده کنیم. Nesting let

* برای استفاده از let تو در تو ما نمیتونیم از کلمه کلیدی it استفاده کنیم و حتما باید از نام های صریح/واضح استفاده کنیم (outer, inner یا هر چیز دیگه ای ) - فقط بیرونی ترین مقدار در let برگشت داده میشود. مثال پایین رو ببیند (به خط قرمز ها توجه کنید)


اگر بلاک کد ما شامل یک تابع واحد با it به عنوان یک آرگومان باشه، می تونیم از مرجع متد ( :: ) به جای لامبدا استفاده کنیم.

اغلب از let برای چک کردن مقدار تهی هم استفاده میشه. که از اپراتور .? برای یک آبجکت عیر تهی non-null استفاده میشه. و در صورتی که مقدار تهی نباشد اکشن های قرار است در let اجرا بشه تماس برقرار میکنه / صداشون میکنه.

let() called on Hello

مورد دیگر برای استفاده از let ، معرفی متغیرهای محلی با دامنه محدود برای بهبود خوانایی کد است. برای تعریف یک متغیر جدید برای موضوع متن (context object)، نام آن را به عنوان آرگومان lambda تهیه میکنیم تا بتوان به جای پیش فرض از آن استفاده کرد.

The first item of the list is 'one'
First item after modifications: '!ONE!'

یه مثال دیگه از let برای چک کردن مقدار تهی - Current Example

TEST is empty: false
Printing &quotnull&quot:
Printing &quotmy string&quot:
MY STRING
  1. Calls the given block on the result on the string "test".
  2. Calls the function on "test" by the it reference.
  3. let returns the value of this expression.
  4. Uses safe call, so let and its code block will be executed only on non-null values.


و مثال دیگه از چک کردن مقدار تهی البته با این دفعه با طعم اندروید استودیو



بخش دوم هم تموم شد - امیدوارم مفید بوده باشه واستون - لینک سایر بخش هم رو قرار میدم تا دسترسی واستون راحت باشه + لینک منابع این قسمت.
https://virgool.io/@omiddeadlive/scope-function-in-kotlin-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-%D9%85%D8%A8%D8%A7%D8%AD%D8%AB-%D9%BE%D8%A7%DB%8C%D9%87-srhxbzzv5wnb



https://kotlinlang.org/docs/reference/scope-functions.html#let
https://www.journaldev.com/19467/kotlin-let-run-also-apply-with#nesting-let
scope functionstandard functionkotlinکاتلینتوابع استاندارد
جزوات و نت بردای‌های من از دوره‌های ICT بیشتر در t.me/ICT_NoteTaking
شاید از این پست‌ها خوشتان بیاید