Als ich anfing, mit Kotlin zu entwickeln, möchte ich einen Punkt schreiben, über den ich verwirrt war. Mögen Java-Entwickler, die diesen Artikel lesen, einen guten Start in die Kotlin-Entwicklung haben ...
Deklarieren wir eine Variable in Java.
int i = 0;
Wenn Sie dies in Kotlin schreiben
var i: Int = 0
Es wird so sein.
Variablenname: TypWas ist also mit "var"?
var (variable)
Entspricht den nicht endgültigen Java-Variablen. Sie kann nach der Initialisierung neu zugewiesen werden.
val (value)
Gleich wie Java mit final. Es kann nach der Initialisierung nicht neu zugewiesen werden.
val i: Int = 0
i = 1 //Kompilierungsfehler
var i: Int = 0
i = 1 // OK
** Wenn möglich, deklarieren Sie die Variable mit "val" der Neuzuweisung NG.
Verwenden Sie var nur, wenn Sie es brauchen. ** **.
Übrigens ist es auch im Fall von "val" nicht erforderlich, am Deklarationspunkt zu initialisieren.
val i: Int
if (flag) {
i = 1
}
else {
i = 4
}
Kotlin hat Typinferenz.
Wenn Sie eine Variable ohne Inferenz deklarieren, ist sie ↓
val i: Int = 0
Sie können den Typ weglassen, indem Sie die Inferenz ↓ verwenden
val i = 0
Lassen Sie uns den Typ aus dem Literal ableiten.
val i = 0 // Int
val l = 0L // Long
val f = 0F // Float
val d = 0.0 // Double
val c = 'c' // Char
val str = "str" // String
Versuchen Sie, den Rückgabewert der Funktion abzuleiten.
fun getString(): String {
return "kotlin"
}
val str = getString()
// val str:Sie müssen keinen String schreiben
Kotlin hat keinen "Schalter". Es gibt stattdessen "wann".
Beschäftigen wir uns mit der Aufzählung, die einen Tag darstellt.
enum class DayOfWeek {
SUN, MON, TUE, WED, THU, FRI, SAT
}
val dayOfWeek: DayOfWeek = DayOfWeek.MON
//Samstage und Sonntage sind gut, sonst schlecht
when (dayOfWeek) {
DayOfWeek.SUN -> println("Good!")
DayOfWeek.SAT -> println("Good!")
else -> println("Bad...")
}
Wenn es zwei oder mehr Ausdrücke gibt, können Sie sie in { } after-> einschließen.
when {
`Bedingungen` -> { `Formel` }
}
Sie können die break-Klausel nicht in when verwenden. Standardmäßig brechen. Wenn Sie mehrere Bedingungen gleichzeitig bearbeiten möchten, trennen Sie sie durch Kommas.
when (dayOfWeek) {
DayOfWeek.SUN, DayOfWeek.SAT -> println("Good!")
else -> println("Bad...")
}
if, when und try sind Ausdrücke anstelle von AnweisungenDa if, when und try Ausdrücke sind, können Sie das Ergebnis einer Variablen zuweisen oder es als Rückgabewert einer Funktion behandeln.
val v = if (flag) {
"I like Kotlin!"
} else {
"(T_T)"
}
Der zuletzt ausgewertete Ausdruck ist das Ergebnis von if.
Wenn flag wahr ist, Ich mag Kotlin!” Wird den if-Ausdruck ergeben. Der Variablen v` zugeordnet.
Das obige Beispiel hat genau die gleiche Verwendung wie der ternäre Java-Operator. In Kotlin gibt es keine ternären Operatoren.
// Java
String v = flag ? "I like Kotlin!" : "(T_T)";
In Kotlin gibt es keine "Leere". Verwenden Sie den Typ "Einheit", um eine Funktion ohne Rückgabewert darzustellen.
fun doSomething(): Unit {
// doSomething
}
Es gibt nützliche Funktionen, die Instanzen von List und Array erstellen.
val list = listOf(0, 1, 2)
val empty = emptyList<Int>()
val arr = arrayOf('a', 'b', 'c')
val empty = emptyArray<Char>()
XXXof () ist eine Argumentfunktion mit variabler Länge, mit der Sie die Elemente einer Sammlung beschreiben können.
Die Funktion emptyXXX () ist nützlich, um leere Sammlungen zu generieren.
| Schimmel | Generieren | 空Generieren |
|---|---|---|
| Array | arrayOf() | emptyArray() |
| List | listOf() | emptyList() |
| Set | setOf() | emptySet() |
| Map | mapOf() | emptyMap() |
Wenn das Element nicht abgeleitet werden kann, müssen Sie einen Typparameter angeben.
val numList = listOf<Number>(0.0F, 100, 1_000_000_000_000L)
Es gibt zwei Haupttypen von Kotlin-Sammlungen.
Eine veränderliche Sammlung (veränderlich) und eine unveränderliche Sammlung (unveränderlich).
Die Funktion add (), mit der Elemente hinzugefügt werden, und die Funktion remove (), mit der Elemente entfernt werden, sind nur in veränderlichen Sammlungen vorhanden.
| Immutable | Mutable |
|---|---|
| List | MutalbeList |
| Set | MutableSet |
| Map | MutableMap |
Die Funktion mutableXXXof () ist nützlich zum Generieren von Mutable-Sammlungen.
val list = mutableListOf(0, 1, 2)
list.add(3)
Im Gegensatz zu Java müssen Kotlin-Funktionen und -Variablen nicht zu einer Klasse gehören.
import com.package
//Funktionen, die nicht zur Klasse gehören
fun topLevelFunction() {
// do something
}
//Variablen, die nicht zur Klasse gehören
var topLevelVariable = 0
class Hoge {
}
Recommended Posts