Destrukturoivat määritykset componentN-funktioilla
Purkaa data-luokkien instansseja muuttujiksi component-funktioiden avulla.
Destrukturoivat määritykset componentN-funktioilla on ilmainen Kotlin Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Kotlin Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Hajotelmien perusteet
Hajotelmamääritys purkaa olion useiksi muuttujiksi yhdellä kertaa. Se käyttää componentN()-operaattorifunktioita.
Data-luokan hajottaminen
Data-luokat luovat automaattisesti funktiot component1, component2, ... joten voitte kirjoittaa val (a, b) = obj.
data class Point(val x: Int, val y: Int)
fun main() {
val p = Point(3, 5)
val (x, y) = p
println("x=$x, y=$y")
}Pair-olion hajottaminen
Vakiokirjaston tyypit Pair ja Triple tukevat hajotelmia suoraan.
fun main() {
val pair = "Ada" to 35
val (name, age) = pair
println("$name is $age")
}Triple-olion hajottaminen
Triple sisältää kolme arvoa, jotka voidaan hajottaa kolmeksi muuttujaksi.
fun main() {
val rgb = Triple(255, 128, 0)
val (r, g, b) = rgb
println("R=$r G=$g B=$b")
}Hajotelmat Map-iteraatiossa
Map-alkioilla on avainta vastaava component1 ja arvoa vastaava component2. Hajottakaa alkio for-silmukan otsikossa.
fun main() {
val ages = mapOf("Alice" to 30, "Bob" to 25)
for ((name, age) in ages) {
println("$name -> $age")
}
}Hajotelmat lambdoissa
Pair-olioita vastaanottavat lambdat voivat hajottaa parametrit suoraan.
fun main() {
val pairs = listOf("a" to 1, "b" to 2, "c" to 3)
pairs.forEach { (letter, num) -> println("$letter=$num") }
}Arvojen ohittaminen _-merkillä
Ohittakaa tarpeettomat arvot alaviivalla _.
data class User(val name: String, val email: String, val age: Int)
fun main() {
val u = User("Ada", "ada@example.com", 35)
val (name, _, age) = u
println("$name ($age)")
}Useiden arvojen palauttaminen
Funktio voi palauttaa Pair-olion tai mukautetun data-luokan, jonka kutsuja hajottaa.
data class Result(val sum: Int, val product: Int)
fun computeBoth(a: Int, b: Int) = Result(a + b, a * b)
fun main() {
val (s, p) = computeBoth(4, 5)
println("sum=$s product=$p")
}Mukautettu componentN
Mikä tahansa luokka voi tukea hajotelmia määrittelemällä funktion operator fun componentN().
class RGB(val r: Int, val g: Int, val b: Int) {
operator fun component1() = r
operator fun component2() = g
operator fun component3() = b
}
fun main() {
val (red, green, blue) = RGB(255, 100, 0)
println("$red $green $blue")
}Hajotelmat withIndex()-funktion kanssa
Saakaa iteraation aikana indeksin ja arvon sisältävä Pair-olio käyttämällä withIndex()-funktiota.
fun main() {
val fruits = listOf("apple", "banana", "cherry")
for ((idx, fruit) in fruits.withIndex()) {
println("$idx: $fruit")
}
}Rajoitus: sijaintiin perustuva
Hajotelmat perustuvat sijaintiin, eivät nimeen. Data-luokan kenttien järjestyksen muuttaminen muuttaa merkitystä kutsukohdissa huomaamatta.
data class Point(val x: Int, val y: Int)
fun main() {
val p = Point(10, 20)
val (a, b) = p // a=x, b=y
// Add a property in the middle and old destructuring shifts!
println("$a $b")
}Pikatarkistus
Mikä operaattorifunktio mahdollistaa i:nnen ominaisuuden hajottamisen?
Kertaus
Hajotelmat käyttävät componentN()-operaattorifunktioita. Data-luokat, Pair, Triple ja Map-alkiot tukevat niitä suoraan. Käyttäkää _-merkkiä arvojen ohittamiseen ja muistakaa, että hajotelmat perustuvat sijaintiin eivätkä nimeen.
Opi Kotlin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 51
- Oppitunnit
- 203
Usein kysytyt kysymykset
Onko oppitunti ”Destrukturoivat määritykset componentN-funktioilla” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Kotlin Academy-oppimispolun 3 oppituntia, myös oppitunnin “Destrukturoivat määritykset componentN-funktioilla”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Kotlin Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Destrukturoivat määritykset componentN-funktioilla”?
Purkaa data-luokkien instansseja muuttujiksi component-funktioiden avulla. Harjoittelet Kotlin Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Kotlin Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Kotlin Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/4.
Kuinka kauan ”Destrukturoivat määritykset componentN-funktioilla”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Kotlin Academy-oppitunnilla?
Kyllä. Jokainen Kotlin Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Data-luokkien perusteet: automaattisesti luodut metodit
- Kopiointi copy()-funktiolla ja osittaiset ylikirjoitukset
- Destrukturoivat määritykset componentN-funktioilla
- Data-luokat kokoelmissa ja Map-avaimina