0Pricing
Kotlin Academy · Lekcja

val a var: niezmienność od pierwszego dnia

Poznanie różnicy między val i var oraz znaczenia niezmienności

val a var: niezmienność od pierwszego dnia to bezpłatna lekcja Kotlin Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Kotlin Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Dwa sposoby deklarowania zmiennej

Kotlin ma dwa słowa kluczowe do deklarowania zmiennych: val oznacza referencje tylko do odczytu (niemutowalne), a var — zmienne, których wartość można zmieniać. Właściwy wybór ma znaczenie.

val: referencja tylko do odczytu

val deklaruje referencję, której nie można ponownie przypisać po inicjalizacji. Można myśleć o niej jak o final w Javie.
val name = "Kotlin"
println(name)
// name = "Java" // Error: Val cannot be reassigned

var: referencja modyfikowalna

var deklaruje zmienną, której można ponownie przypisać wartość. Należy używać var tylko wtedy, gdy rzeczywiście potrzebna jest mutowalność.
var counter = 0
counter = 1
counter += 1
println(counter) // 2

Wnioskowanie typu

Kotlin wnioskuje typ na podstawie wartości początkowej. Typ można również zapisać jawnie po dwukropku.
val age = 25          // inferred: Int
val name: String = "Ana"  // explicit type
var score: Double = 0.0

val nie oznacza niemutowalnego obiektu

val uniemożliwia ponowne przypisanie referencji, ale sam obiekt nadal może być modyfikowalny. Do obiektu MutableList wskazywanego przez val nadal można dodawać elementy.
val list = mutableListOf(1, 2, 3)
list.add(4)        // OK! list is val but mutable
// list = mutableListOf() // Error: reassignment

Domyślnie preferuj val

Przewodniki po stylu Kotlina zalecają domyślne używanie val. Dzięki temu kod jest bezpieczniejszy i łatwiejszy do analizowania. Na var należy przechodzić tylko wtedy, gdy wymagana jest modyfikacja.
val pi = 3.14159     // constant value
val greeting = "Hi"  // never changes
var retries = 3      // will be decremented

val a const val

const val służy do stałych znanych w czasie kompilacji (typów prostych i String na poziomie najwyższym albo w obiekcie lub companion). val jest stałą ustalaną w czasie działania programu.
const val MAX_SIZE = 100    // compile-time
val instance = MyClass()    // runtime

Niezainicjalizowane var

Można zadeklarować var bez inicjalizacji, ale MUSI zostać podany typ i przypisana wartość przed użyciem. val musi być zawsze zainicjalizowane.
var result: String
result = "computed"
println(result)

Zakres i przesłanianie nazw

Zmienne mają zakres ograniczony do swojego bloku. Zakresy wewnętrzne mogą przesłaniać zmienne zewnętrzne — może to jednak powodować niejasności, dlatego należy używać znaczących nazw.
val x = 10
run {
    val x = 20  // shadows outer x
    println(x)  // 20
}
println(x)      // 10

Konwencje nazewnictwa

W Kotlinie zmienne i funkcje zapisuje się w notacji camelCase. Stałe (const val) zapisuje się w notacji UPPER_SNAKE_CASE. Klasy używają notacji PascalCase.
val firstName = "Jane"     // camelCase
const val MAX_ITEMS = 50   // UPPER_SNAKE_CASE
class UserProfile           // PascalCase

Dlaczego niemutowalność ma znaczenie

Niemutowalne dane są domyślnie bezpieczne wątkowo, łatwiejsze do testowania i ograniczają liczbę błędów wynikających z nieoczekiwanych modyfikacji. Zawsze należy zapytać: czy trzeba zmienić tę wartość?

Szybkie sprawdzenie

Które słowo kluczowe deklaruje w Kotlinie referencję tylko do odczytu, której nie można ponownie przypisać?

Podsumowanie

val = referencja tylko do odczytu, var = referencja modyfikowalna. Należy preferować val. Wnioskowanie typów pozwala pomijać ich jawne zapisywanie. Następnie: wbudowane typy Kotlina!

Często zadawane pytania

Czy lekcja „val a var: niezmienność od pierwszego dnia” jest bezpłatna?

Tak — pełny tekst „val a var: niezmienność od pierwszego dnia” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Kotlin Academy, przejdź na CoddyKit PRO. Kurs Kotlin Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „val a var: niezmienność od pierwszego dnia”?

Poznanie różnicy między val i var oraz znaczenia niezmienności Ćwiczysz Kotlin Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Kotlin Academy?

Nie wymagamy żadnego doświadczenia. Kotlin Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „val a var: niezmienność od pierwszego dnia”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Kotlin Academy?

Tak. Każda lekcja Kotlin Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Konfiguracja Kotlina: REPL, IntelliJ i internetowy playground
  2. val a var: niezmienność od pierwszego dnia
  3. Podstawowe typy Kotlina: Int, Double, Boolean, Char
  4. Pierwszy program w Kotlinie: main, println i dane wejściowe
← Powrót do Kotlin Academy