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 lub var , 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
}


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow