[JAVA] Kotlin Spickzettel

Zunaechst

Kotlin ist bequem! Aber jetzt muss ich auch Java verwenden. Wie machst du das mit Kotlin? Also habe ich einen Spickzettel gemacht. Kommt mit Code, der sofort ausgeführt werden kann.

Was ist Kotlin?

Kotlin ist eine neue Sprache auf der Java-Plattform, eine statisch typisierte Sprache, die mit Java kompatibel ist. Eine Sprache, die "praktisch, präzise und sicher" sein soll, einfacher als Java und eine praktische Sprache, die Fehler verhindert, die Java tendenziell macht. Die Interoperabilität mit Java erleichtert die Verwendung von Java-Programmen von Kotlin. Die niedrigen Lernkosten sind auch für Java-erfahrene Menschen attraktiv.

Kotlin-Datentyp

Art Bitbreite Art Beispiel
Double 64 Gleitkomma 12345.6
Float 32 Gleitkomma 12345.6f
Long 64 ganze Zahl 123456L 999_99_9999L 0xFF_EC_DE_5E
Int 32 ganze Zahl 123456 0xFF_FF
Short 16 ganze Zahl 32767 0x0F
Byte 8 ganze Zahl 127 0b1010
String - String "Hello, world!\n"

Kotlin-Variablen und -Konstanten

Variable var

var a: Float
a = 12345.6f

Konstanter Wert

val a: Int = 10000
val b = 10_000L //Durch Unterstrich getrennt, damit die Ziffern besser sichtbar sind

Deklaration und Initialisierung müssen nicht gleichzeitig erfolgen.

val c: Double
c = 12345.6

Kotlin-Steuerungssyntax

Wenn Ausdruck

if(true)
    println("Hello")

Online ausführen

if(false){
    println("Hello")
} else if(true) {
    println("Kotlin")
} else {
    println("World!")
}

Online ausführen

Da es sich um einen Ausdruck handelt, kann das Ergebnis zugewiesen werden. Die zuletzt ausgewertete Formel wird zurückgegeben.

val max = if (a > b) {
    print("a is greater than b")
    a
} else {
    print("a is less than b")
    b
}

Online ausführen (https://try.kotlinlang.org/#/UserProjects/6v4vmotcoemh93ckflpilmpct3/riuqp0d3kodcv08vq510inkc9p)

Beim Ausdruck

when (a) {
    1    -> println("a == 1")
    2,3  -> println("a == 2 or a == 3")
    else -> {
        println("otherwise")
    }
}

Online ausführen

Geben Sie den Bereich mit in an.

when (a) {
    in 1..10   -> println("a is in the range")
    !in 10..20 -> println("a is outside the range")
    else       -> println("otherwise")
}

Online ausführen

Für Schleife

for (a in 1..10) println(a)

Online ausführen

for (a in 'Z' downTo 'A') print(a)

Online ausführen

Sammlung

val array = arrayOf(297456, 119243,9,30)
for (a in array) {
    println(a)
}

Online ausführen

Wenn Sie einen Index verwenden möchten

val array = arrayOf(297456, 119243,9,30)
for (i in array.indices) {
    println(array[i])
}

Online ausführen

While-Schleife

Gleich wie Java.

var x = 10
while (x > 0) {
    println(x--)
}

Online ausführen

do-while

do{
  println("i = " + i--)
}while(i > 4)

Online ausführen (https://try.kotlinlang.org/#/UserProjects/6v4vmotcoemh93ckflpilmpct3/pdsmvtodipq00qvmhk75rbb9me)

Kotlin Datenkonvertierung

Konvertieren Sie eine Zeichenfolge in eine Zahl

val intVal: Int = str.toInt()
val intValOrNull: Int? = str.toIntOrNull()
val doubleVal = str.toDouble()

Von jedem Typ zu einer Zeichenkette

val intStr = num.toString()

Casting-Zahlen (zB Int to Long-Konvertierung)

val long= int.toLong()

Online ausführen

Datumsverarbeitung

Datumsverarbeitung

Kotlin-Rechenoperator

Gleich wie Java

Anwendungsbeispiel Bedeutung Anwendungsbeispiel Bedeutung
x + y Hinzufügen x - y Subtrahieren
x * y Multiplizieren x / y Teilung
x % y Überschuss
++x / x++ Zuwachs --y / y-- Dekrement

Kotlin Boolescher Operator

Gleich wie Java

a && b (and) a || b (or) !a (not)

Kotlin Schnur

    val multiline = """
    for (c in "foo"){
        print(c)
    }
    """
    val withTrim = """
    |for (c in "foo"){
    |    print(c)
    |}
    """.trimMargin()

Kotlin String Vorlage

val str = "Hello Kotlin!"
val templete = " $str is ${str.length} characters."
// >Hello Kotlin! is 13 characters.

Wenn Sie $ so ausgeben möchten, wie es ist

val price = 200
val multiline = """
|This is ${'$'}$price.
""".trimMargin()

Online ausführen

Kotlin Vergleichsoperator

Fast das gleiche wie Java, aber "==" entspricht Java gleich. Der Objektvergleich ist in Kotlin "===".

Anwendungsbeispiel Bedeutung Anwendungsbeispiel Bedeutung
x < y x ist klein x <= y x ist klein oder gleich
x > y x ist groß x >= y x ist größer oder gleich
x == y das Gleiche x != y anders
x === y Gleiches Objekt x !== y Objekte sind unterschiedlich

Kotlin String Funktion

Beispiel Bedeutung
s.length s Länge
s.count() s Länge
s[i] i-te Charakter
s.substring(start..end) Teilzeichenfolge von Anfang bis Ende
s.substring(start,end) Anfang bis Ende-Teilstring bis zu 1
s.toUpperCase() Konvertierung in Großbuchstaben
s.toLowerCase() Kleinbuchstabenumrechnung
s.indexOf('x') 'x'Index wo
s.replace(old,new) String-Ersatz
s.replaceFirst(old,new) Ersatz der ersten gefundenen Zeichenfolge
s.split(regex) Zu teilen
s.trim() Entfernen Sie den vorderen und hinteren Leerraum
s.startsWith(prefix) Gibt true zurück, wenn die Zeichenfolge mit frefix beginnt
s.endsWith(suffix) Gibt true zurück, wenn die Zeichenfolge mit dem Suffix endet

Online ausführen

Kotlin Sammlung

List

Schreibgeschützte Liste

val items = listOf(1, 2, 3)
println(items)

Änderbare Liste

val numbers: MutableList<Int> = mutableListOf(1, 2, 3)
numbers.add(4)

Set

Schreibgeschütztes Set

var strings: Set<String> = setOf("A","B","C")

Wechselbares Set

var stringSet: MutableSet<String> = mutableSetOf("x","y","z")
stringSet.add("a") 
stringSet.filter { it != "x"}

Map

Schreibgeschützte Karte

val fruits = mapOf("apple" to 1, "orange" to 2, "banana" to 3)

Veränderbare Karte

val readWriteMap = mutableMapOf("apple" to 1, "orange" to 2, "banana" to 3)
readWriteMap.put("melon",4)

Kotlin-Funktion

Kotlin-Funktionen werden mit dem Schlüsselwort fun definiert

fun times(a: Int, b: Int): Int {
    return a * b
}

Funktionsausführung

val result = times(2,5)

Online ausführen

Wenn der Funktionskörper aus einem Ausdruck besteht, kann die mittlere Klammer weggelassen und der Ausdruck nach = geschrieben werden. Der Rückgabewert kann durch Inferenz weggelassen werden.

fun times(a: Int, b: Int) = a * b

Für das Argument kann ein Standardwert angegeben werden. Sie können den Namen des Arguments angeben, wenn Sie die Funktion aufrufen.

val result = makeString(base = "world ", concl = "of Kotlin!")

Online ausführen

Kotlin Klasse

open class Parent{
    open fun show() = println("This is Parent")
}
class Child:Parent(){
    override fun show() = println("This is Child")
}

Initializer: Der Initialisierungscode verwendet den Init-Block

class Person(val name: String, val isMan:Boolean, var favorite:String ){
    init {
        val s = if(isMan) "He" else "She"
        favorite =  "$s liles $favorite"
    }
}

Online ausführen

Kotlin-Datenklasse

Durch die Definition als Datenklasse werden gleich, hashCode, toString und copy automatisch generiert.

data class Dog(val name: String)

Objektausdruck

Eine Funktion, die einer anonymen Klasse in Java entspricht. Objekt: Name der Vererbungsklasse (Schnittstelle) {Implementierung}

view.setOnClickListener(object: View.OnClickListener {
override fun onClick(v: View?) {
        view.text = "clicked"
    }
})

Kotlin Lambda Ausdruck

{Variable:Schimmel->wird bearbeitet}

Lambda-Ausdrücke können in Variablen gespeichert werden

val minus = {x: Int, y: Int -> x - y }

Wenn der Lambda-Ausdruck ein Argument hat, kann das Argument weggelassen und das implizite Argument verwendet werden.

val double:(Int)->Int = {it * 2}

Interoperabilität mit Java

Verwenden Sie ClassName :: class.java oder instance :: class.java, um java.lang.Class abzurufen

val clazz = Activity::class.java
val clazzz = this::class.java

Recommended Posts

Kotlin Spickzettel
JMeter Spickzettel
[Docker Spickzettel]
Mockito + PowerMock Spickzettel
Eclipse Sammlungen Cheet Sheet
Schienen Tutorial Cheet Sheet
SCSS Notation Spickzettel
Docker Befehl Spickzettel
[Eclipse] Shortcut Key Spickzettel
C # Spickzettel für Java-Techniker
Javac, Jar, Java Befehl Spickzettel
Erste Schritte mit dem Doma-Criteria API Cheet Sheet
Über Kotlin
Technologie zum Lesen des Quellcodes (Cheet Sheet)
[Java] Spickzettel für Datentyp / Zeichenkettenklasse
Kotlin Bytecode
Kotlin Infix
Hinweis: Cheet Sheet beim Erstellen der Rails Vue-App