Zestawy rozmówBlog

Twoja wymarzona praca? Lets Git IT.
Interaktywna platforma przygotowująca do rozmów technicznych dla nowoczesnych programistów.

XGitHub

Platforma

  • Kategorie

Zasoby

  • Blog
  • O aplikacji
  • FAQ
  • Sugestie

Prawne

  • Polityka prywatności
  • Regulamin

© 2026 LetsGit.IT. Wszelkie prawa zastrzeżone.

LetsGit.IT/Kategorie/Kotlin
Kotlineasy

`val` vs `var` — jaka jest różnica?

Tagi
#val#var#immutability
Wróć do kategoriiPrzejdź do quizu

Odpowiedź

`val` to referencja tylko-do-odczytu (nie da się jej przepisać), a `var` jest mutowalne (da się przepisać). `val` nie czyni obiektu automatycznie niemutowalnym.

Odpowiedź zaawansowana

Głębiej

`val` oznacza, że referencja nie może być ponownie przypisana po inicjalizacji. `var` oznacza, że możesz przepisać ją na inną wartość.

To dotyczy *referencji*, nie obiektu:

  • `val list = mutableListOf(1)` nadal pozwala na `list.add(2)`.

Praktyka

  • Domyślnie wybieraj `val` (czytelniejsza intencja, mniej przypadkowych reassign).
  • `var` tylko gdy przepisywanie jest częścią logiki.

Przykład

val xs = mutableListOf(1)
xs.add(2)      // OK
// xs = mutableListOf(3) // nie OK

var n = 1
n = 2          // OK

Typowe pułapki

  • Mylenie `val` z głęboką niemutowalnością.
  • Użycie `var` „na wszelki wypadek” i pogorszenie czytelności.

Powiązane pytania

Kotlin
List vs MutableList w Kotlinie: jaka jest różnica?
#kotlin#collections#immutability
Kotlin
Czym jest data class w Kotlinie i po co się jej używa?
#data-class#kotlin#dto
Kotlin
Val vs Var?
#kotlin#variables#immutability
Java
Java `record`: co generuje i kiedy warto go użyć?
#java#record#dto
Java
`List.of(...)`: jaką listę tworzy i jaki jest częsty gotcha?
#java#collections#immutability