Operatorerna is och as
Typkontroller och typomvandlingar
Operatorerna is och as är en gratis lektion i Kotlin Academy på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Kotlin Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Kontrollera och casta typer
Kotlin erbjuder två operatorer för att arbeta med typer vid körning:
iskontrollerar om ett värde har en viss typascastar ett värde till en viss typ
Båda har säkra varianter som ni får lära er här.
Operatorn is
is returnerar ett booleskt värde som anger om ett värde matchar en typ.
Den ligger till grund för smart casts.
fun main() {
val x: Any = "hello"
println(x is String)
println(x is Int)
}Negerad kontroll med !is
Använd !is för att kontrollera att ett värde INTE har en viss typ.
Detta blir naturligt i skyddsvillkor.
fun main() {
val x: Any = 42
if (x !is String) {
println("not a string")
}
}Operatorn as
as utför en explicit castning. Om värdet verkligen har den typen får ni tillbaka det korrekt typat.
Använd den när kompilatorn inte själv kan härleda typen.
fun main() {
val x: Any = "hello"
val s = x as String
println(s.length)
}När as misslyckas
Om värdet inte har måltypen kastar as ett ClassCastException.
Detta är den osäkra varianten, så använd den bara när ni är säkra.
fun main() {
val x: Any = 42
try {
val s = x as String
println(s)
} catch (e: ClassCastException) {
println("Cannot cast Int to String")
}
}Den säkra castningen as?
as? är den säkra castningen. Den returnerar värdet castat till typen eller null om castningen inte är möjlig.
Inget undantag kastas.
fun main() {
val x: Any = 42
val s = x as? String
println(s)
}Säker castning med Elvis
Kombinera as? med Elvis för att ange ett reservvärde när castningen misslyckas.
Detta är ett tydligt mönster som inte kraschar.
fun main() {
val x: Any = 42
val s = (x as? String) ?: "default"
println(s)
}is styr smart casts
Efter en is-kontroll behöver ni vanligtvis inte as alls, eftersom smart casts aktiveras.
Använd explicit as endast när smart casting inte kan tillämpas.
fun main() {
val x: Any = "smart"
if (x is String) {
println(x.uppercase()) // smart cast, no as needed
}
}Castning i samlingar
Säkra castningar är användbara när ni filtrerar blandade samlingar.
filterIsInstance använder is internt för att behålla endast matchande element.
fun main() {
val items: List<Any> = listOf(1, "two", 3, "four")
val strings = items.filterIsInstance<String>()
println(strings)
}Välj rätt operator
En enkel vägledning:
- Behöver ni ett booleskt värde? använd
is - Är ni säkra på typen? använd
as - Är ni osäkra? använd
as?med ett reservvärde
fun describe(x: Any): String {
val text = x as? String ?: return "not text"
return "text of length " + text.length
}
fun main() {
println(describe("hello"))
println(describe(99))
}Knyta ihop det
Typoperatorerna ger er full kontroll:
is/!iskontrollerar typerascastar men kan kasta ett undantagas?castar säkert och returnerar null vid misslyckande
fun main() {
val values: List<Any> = listOf(1, "hi", 2.5)
for (v in values) {
when {
v is Int -> println("int " + v)
v is String -> println("string " + v)
else -> println("other")
}
}
}Snabbtest
Testa era kunskaper om is och as.
Repetition
Ni har lärt er om typoperatorerna:
isoch!isför typkontrollerasför castningar som kan kasta undantagas?för säkra castningar som returnerar null
Härnäst gör ni when uttömmande så att alla fall täcks.
Lär dig Kotlin med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 51
- Lektioner
- 203
Vanliga frågor
Är lektionen ”Operatorerna is och as” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Kotlin Academy, inklusive ”Operatorerna is och as”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Kotlin Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Operatorerna is och as”?
Typkontroller och typomvandlingar Ni övar på Kotlin Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Kotlin Academy?
Du behöver inga förkunskaper. Utbildningen i Kotlin Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.
Hur lång tid tar lektionen ”Operatorerna is och as”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Kotlin Academy-lektionen?
Ja. Varje Kotlin Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- when som uttryck
- Smarta typomvandlingar
- Operatorerna is och as
- Fullständig when