Kotlin
Basisprincipes van Kotlin
Zoeken…
Invoering
Dit onderwerp behandelt de basisprincipes van Kotlin voor beginners.
Opmerkingen
- Kotlin-bestand heeft de extensie .kt.
- Alle klassen in Kotlin hebben een gemeenschappelijke superklasse Any, dat is een standaardsuper voor een klasse zonder aangegeven supertypes (vergelijkbaar met Object in Java).
- Variabelen kunnen worden gedeclareerd als val (onveranderlijk - eenmaal toewijzen) of var (mutables - waarde kan worden gewijzigd)
- Puntkomma is niet nodig aan het einde van de afrekening.
- Als een functie geen nuttige waarde retourneert, is het retourtype Eenheid. Het is ook optioneel. 6.Referentiële gelijkheid wordt gecontroleerd door de bewerking ===. a === b evalueert waar als en alleen als a en b naar hetzelfde object wijzen.
Basis voorbeelden
1.De aangifte typetype eenheid is optioneel voor functies. De volgende codes zijn equivalent.
fun printHello(name: String?): Unit {
if (name != null)
println("Hello ${name}")
}
fun printHello(name: String?) {
...
}
2.Single-Expression-functies: wanneer een functie een enkele expressie retourneert, kunnen de accolades worden weggelaten en wordt de body opgegeven na = symbool
fun double(x: Int): Int = x * 2
Expliciet declareren van het retourtype is optioneel wanneer dit door de compiler kan worden afgeleid
fun double(x: Int) = x * 2
3.String-interpolatie: het gebruik van tekenreekswaarden is eenvoudig.
In java:
int num=10
String s = "i =" + i;
In Kotlin
val num = 10
val s = "i = $num"
4.In Kotlin maakt het type systeem onderscheid tussen referenties die null kunnen bevatten (nulbare referenties) en referenties die dat niet kunnen (niet-null referenties). Een normale variabele van het type String kan bijvoorbeeld geen nul bevatten:
var a: String = "abc"
a = null // compilation error
Om nullen toe te staan, kunnen we een variabele declareren als nullable string, geschreven String ?:
var b: String? = "abc"
b = null // ok
5.In Kotlin controleert == daadwerkelijk op gelijkheid van waarden. Volgens conventie wordt een uitdrukking zoals a == b vertaald in
a?.equals(b) ?: (b === null)