Kotlin
Kotlin dla programistów Java
Szukaj…
Wprowadzenie
Większość osób przyjeżdżających do Kotlin ma doświadczenie w programowaniu w Javie.
W tym temacie zebrano przykłady porównujące Javę z Kotlinem, podkreślając najważniejsze różnice i te klejnoty, które Kotlin oferuje w porównaniu z Javą.
Deklarowanie zmiennych
W Kotlinie deklaracje zmiennych wyglądają nieco inaczej niż deklaracje Javy:
val i : Int = 42
Zaczynają z obu
val
lubvar
, czyniąc deklaracjęfinal
( „val ue”) lub var iable.Typ jest zapisany po nazwie, oddzielony
:
Dzięki wnioskowaniu o typie Kotlina można wykluczyć jawną deklarację typu, jeśli istnieje przypisanie do typu, który kompilator jest w stanie jednoznacznie wykryć
Jawa | Kotlin |
---|---|
int i = 42; | var i = 42 ( lub var i : Int = 42 ) |
final int i = 42; | val i = 42 |
Szybkie fakty
- Kotlin nie potrzebuje
;
do końca oświadczeń - Kotlin jest bezpieczny
- Kotlin jest w 100% kompatybilny z Javą
- Kotlin nie ma prymitywów (ale optymalizuje swoje odpowiedniki obiektów dla JVM, jeśli to możliwe)
- Klasy Kotlin mają właściwości, a nie pola
- Kotlin oferuje klasy danych z automatycznie wygenerowanymi metodami
equals
/hashCode
i akcesoriami polowymi - Kotlin ma tylko wyjątki czasu wykonywania, bez zaznaczonych wyjątków
- Kotlin nie ma
new
słowa kluczowego . Tworzenie obiektów odbywa się po prostu przez wywołanie konstruktora, jak w przypadku każdej innej metody. - Kotlin obsługuje (ograniczone) przeciążenie operatora . Na przykład dostęp do wartości mapy można zapisać w następujący sposób:
val a = someMap["key"]
- Kotlin można nie tylko skompilować do kodu bajtowego dla JVM, ale także do Java Script , umożliwiając pisanie zarówno kodu zaplecza, jak i interfejsu użytkownika w Kotlin
- Kotlin jest w pełni kompatybilny z Javą 6 , co jest szczególnie interesujące pod względem obsługi (nie tak) starych urządzeń z Androidem
- Kotlin to oficjalnie obsługiwany język programowania Androida
- Kolekcje Kotlin mają wbudowane rozróżnienie między kolekcjami zmiennymi i niezmiennymi .
- Kotlin obsługuje Coroutines (eksperymentalnie)
Równość i tożsamość
Kotlin używa ==
dla równości (to znaczy, że połączenia są equals
wewnętrznie) i ===
dla tożsamości referencyjnej.
Jawa | Kotlin |
---|---|
a.equals(b); | a == b |
a == b; | a === b |
a != b; | a !== b |
Zobacz: https://kotlinlang.org/docs/reference/equality.html
JEŻELI, TRY i inne są wyrażeniami, a nie stwierdzeniami
W Kotlin, if
, try
a inne są wyrażeniami (więc zwracają wartość), a nie (nieważnymi) instrukcjami.
Na przykład Kotlin nie ma trójskładnikowego języka Java Elvis Operator , ale możesz napisać coś takiego:
val i = if (someBoolean) 33 else 42
Jeszcze bardziej nieznane, ale równie wyraziste jest wyrażenie try
:
val i = try {
Integer.parseInt(someString)
}
catch (ex : Exception)
{
42
}