Jason. Cała informatyka w jednym miejscu!

Nie rozstajemy się z Kotlinem ani na chwilę, a dzisiaj króciutki wątek o tym, co nam daje słowo kluczowe "lateinit" w języku Kotlin. Sprawdźcie sami do czego można to zakwalifikować.

"LATEINIT" W JĘZYKU KOTLIN, CZYLI PROŚBA O PÓŹNIEJSZĄ INICJALIZACJĘ DANEJ SKŁADOWEJ

Ujmując najkrócej jak się da. "lateinit" to oznaczenie dla kompilatora, że chcemy się wstrzymać ze wstępnym przypisaniem wartości dla zmiennej, bądź danej składowej klasy. To nie wymaga porównania do języka Java, gdyż we wspomnianym języku, brak inicjalizacji zmiennej takiej czy śmakiej jest normą. Kotlin ma jednak kaprys stawiania na pierwszym miejscu zapewnienie maksimum bezpieczeństwa, stąd wymaganie poinformowania kompilatora poprzez wstawienie adnotacji o która się rozchodzi w tym artykule.

Jak ma wyglądać zapis? Żadna filozofia. Jeśli zdarzy się sytuacja, że nie będziemy mogli w żaden sposób zainicjować zmiennej ze słowem kluczowym "var", "prosimy" język słowem kluczowym "lateinit" o pozwolenie przełożenia przypisywania wartości na później. Tak wygląda zapis:

lateinit var attribute: Int

Stosując to hasło, musicie mieć z tyłu głowy fakt, iż dopuszcza się możliwość jego użycia WYŁĄCZNIE dla "klasowych" typów danych. Własne czy wbudowane klasy przejdą bez problemu, natomiast z typami prostymi tego już łączyć nie można. Wyjątkiem jest "String", zatem "lateinit" w języku Kotlin w takiej:

lateinit var string: String

i takiej postaci:

lateinit var object: [dowolna klasa]

to dwie jedyne kombinacje, które będą uznane za poprawne. Przy innych typach "lateinit" w języku Kotlin spowoduje błąd kompilacji.

Macie kolejny dowód ze strony Kotlina, że im więcej słów kluczowych, tym bardziej niestandardowe zachowanie. To dlatego, że tradycyjnie nie można przełożyć przypisywania wartości danej składowej na później. "lateinit" w języku Kotlin (pod warunkami opisanymi powyżej) może być spokojnie wykorzystywane zarówno w klasie, jak i na zewnątrz niej (chociaż "lateinit" będzie niezbędne tylko wewnątrz klasy, a na zewnątrz nie będzie robiło różnicy).

Słowo kluczowe "lateinit" w języku Kotlin

"lateinit" w języku Kotlin to adnotacja pozwalająca na przełożenie inicjalizacji zmiennej "var" na później. "String" i dowolna klasa niebędąca odzwierciedleniem typu prostego, to są jedyne dopuszczalne typy.


To już wszystko. Całe zagadnienie kręci się tylko wokół tylko wspomnianej adnotacji tylko dlatego, żebyście byli świadomi że coś takiego istnieje i w jaki sposób stosować (oraz pod jakimi kryteriami).

PODOBNE ARTYKUŁY