Szukaj…


Wprowadzenie

Ten temat obejmuje podstawy Kotlina dla początkujących.

Uwagi

  1. Plik Kotlin ma rozszerzenie .kt.
  2. Wszystkie klasy w Kotlin mają wspólną nadklasę Any, która jest domyślną superklasą dla klasy bez zadeklarowanych nadtypów (podobnie jak Object w Javie).
  3. Zmienne można zadeklarować jako val (niezmienne - przypisz raz) lub var (zmienne - wartość można zmienić)
  4. Średnik nie jest potrzebny na końcu instrukcji.
  5. Jeśli funkcja nie zwraca żadnej użytecznej wartości, jej typem zwrotnym jest Jednostka. Jest to również opcjonalne. 6. Równość referencyjna jest sprawdzana przez operację ===. a === b ocenia na prawdę wtedy i tylko wtedy, gdy aib wskazują na ten sam obiekt.

Podstawowe przykłady

1. Deklaracja typu zwrotu jednostki jest opcjonalna dla funkcji. Poniższe kody są równoważne.

    fun printHello(name: String?): Unit {
        if (name != null)
            println("Hello ${name}")
    }
    
    fun printHello(name: String?) {
        ...
    }

2. Funkcje pojedynczego wyrażenia: Gdy funkcja zwraca pojedyncze wyrażenie, nawiasy klamrowe można pominąć, a treść określa się po symbolu =

  fun double(x: Int): Int = x * 2

Jawne zadeklarowanie typu zwracanego jest opcjonalne, gdy kompilator może wywnioskować

  fun double(x: Int) = x * 2

3. Interpolacja ciągów: Używanie wartości ciągów jest łatwe.

In java:
    int num=10
    String s  = "i =" + i;

In Kotlin
    val num = 10
    val s = "i = $num"

4. W Kotlin system typów rozróżnia odniesienia, które mogą zawierać null (odwołania zerowe) i te, które nie mogą (odwołania inne niż null). Na przykład zwykła zmienna typu String nie może mieć wartości null:

var a: String = "abc"
a = null // compilation error

Aby zezwolić na wartości null, możemy zadeklarować zmienną jako ciąg zerowy, napisany Ciąg ?:

var b: String? = "abc"
b = null // ok

5. W Kotlin == faktycznie sprawdza równość wartości. Zgodnie z konwencją wyrażenie takie jak == b jest tłumaczone na

   a?.equals(b) ?: (b === null)


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