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
: Typ
Was 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