پاسخ ها ( ۳ )

  1. موارد زیر کلمه کلیدی lateinit بشدت کار آمد خواهد بود :
    زمان استفاده در اندروید : متغیر هایی که در متدهای چرخه حیات یا lifecycle مقدار دهی میشوند
    زمان استفاده در Dagger دگر برای DI (Dependency Injection) :‌ متغیرهای تزریق شده درون کلاس
    خارج از کلاس مقداردهی می شوند و بطور مستقل درون سازنده ها یا constructor ها هستند.
    کانفیگ unit test : متغیر های محیط تست‌ test در annotation یا حاشیه نوشت @Before درون متد مقدار دهی میشوند.

  2. کلمه کلیدی lateinit برای مقدار دهی کمی دیرتر متغیر هاست.کمی دیرتر بدین معنی است که حتما باید مقدار دهی شود و بصورت پیش فرض مقدار null دارد و درصورتی که مقدار دهی نشود باعث دردسر و خطای برنامه خواهد شد.

    کلمه کلیدی lateinit زمانی مفید خواهد بود که یک مقدار اجازه تعریف شدن با مقدار null را ندارد اما برنامه نویس مطمئن است زمان استفاده از این متغیر ، متغیر null نیست و حتما مقدار دارد اما با این حال چک کردن متغیر جهت null‌ نبودن الزامی ست !

  3. دقت بفرمایید که از اونجایی که در کاتلین شما اجازه ندارید هیچ آبجکتی رو با null مقدار دهی کنید(مگر اینکه صراحتا اعلام کنید که میخواید nullable باشه)، از این رو باید در لحظه definition آبجکت رو initialize کنید.

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

    بهترین پاسخ

ارسال یک پاسخ