Sobes.tech
Junior — Middle

Jakie są różnice między słowami kluczowymi const val i val w Kotlin?

sobes.tech AI

Odpowiedź od AI

W Kotlinie słowo kluczowe val oznacza niezmienną zmienną (tylko do odczytu), której wartość można przypisać raz podczas inicjalizacji, ale sama wartość może być obliczana podczas wykonywania.

const val to stała czasu kompilacji, która musi być typu prymitywnego lub łańcucha i musi być inicjalizowana wartością znaną na etapie kompilacji. Takie stałe można używać na przykład w adnotacjach lub jako parametry wymagające stałych.

Główne różnice:

  • const val jest zawsze stałą statyczną, dostępną na poziomie klasy (tylko w obiektach lub na poziomie górnym).
  • val to zwykła niezmienna właściwość, którą można obliczać dynamicznie.

Przykład:

const val MAX_COUNT = 10 // stała czasu kompilacji
val currentTime = System.currentTimeMillis() // wartość obliczana podczas wykonywania