Vyhlásenia o deštrukturalizácii v Kotline

1. Prehľad

V tomto tutoriáli si predstavíme koncept vyhlásenia o deštrukturalizácii v Kotline a pozrieme sa na to, ako sa dá použiť.

Ak sa chcete dozvedieť viac o Kotlinovi, prečítajte si tento článok.

2. Vyhlásenia o deštrukturalizácii

Tento koncept spočíva v zaobchádzaní s objektmi ako so sadou samostatných premenných.

2.1. Predmety

Deštrukturalizácia objektu do viacerých premenných môže byť pohodlná:

val osoba = Osoba (1, "Jon Snow", 20) val (id, meno, vek) = osoba 

Týmto sme vytvorili tri nové premenné:

println (id) // 1 println (meno) // Jon Snow println (vek) // 20 

Deklarácia o deštrukcii je zostavená ako nasledujúci kód:

val id = person.component1 (); val meno = osoba.component2 (); vek valencie = osoba.komponent3 ();

Aby sme mohli použiť deklaráciu deštrukcie, musíme sa uistiť, či je komponent označený operátor alebo je trieda označená údaje Kľúčové slová.

Pre viac na Dátové triedy v Kotline nezabudni skontrolovať toto článok.

2.2. Návratové typy

Deklarácie o deštrukturalizácii je možné použiť aj pri práci s návratovými hodnotami:

fun getPersonInfo () = Osoba (2, "Ned Stark", 45) val (id, meno, vek) = getPersonInfo ()

Alebo povedzme, že musíme z funkcie vrátiť dve hodnoty:

fun twoValuesReturn (): Pair {// ... return Pair (1, "success")} val (result, status) = twoValuesReturn ()

2.3. Zbierky a slučky

Iteráciu kolekcie pomocou slučiek for-loop je možné vykonať pomocou deštruktívnych vyhlásení, napríklad takto:

pre ((a, b) v zbierke) {...} 

Premenné a a b sú priradené hodnoty vrátené komponent1 () a komponent2 () metódy - ktoré vracajú prvé dva prvky v zbierke.

Avšak v a Mapa, premenné by boli kľúč a hodnota, respektíve:

var mapa: HashMap = HashMap () map.put (1, osoba) pre ((kľúč, hodnota) v mape) {println ("Kľúč: $ kľúč, Hodnota: $ hodnota")}

2.4. Podčiarknutie a deštrukturalizácia v Lambdas

V prípade, že nepotrebujeme všetky hodnoty získané v deštrukčnej deklarácii, môžeme namiesto názvu premennej použiť podčiarknutie:

val (_, meno, vek) = osoba

Alebo ak nie sú potrebné polia na konci, môžeme ich vôbec vynechať:

val (id, meno) = osoba

Môžeme tiež použiť syntax deštrukčných deklarácií pre parametre lambda, pokiaľ ide o typ s príslušným zložkaN funkcie:

map.mapValues ​​{entry -> "$ {entry.value}!" } map.mapValues ​​{(kľúč, hodnota) -> „$ value!“ }

Uvedomte si, aký je rozdiel medzi deklarovaním dvoch parametrov a deklarovaním zničujúcej dvojice:

{a -> ...} // jeden parameter {a, b -> ...} // dva parametre {(a, b) -> ...} // zničená dvojica {(a, b), c -> ...} // zničený pár a ďalší parameter

3. Záver

V tomto rýchlom článku sme sa priblížili k Deklarácii o deštrukturalizácii v Kotline s mnohými spôsobmi použitia a osobitosťami.

Ak sa chcete dozvedieť viac o Kotlinovi, určite si pozrite naše ďalšie články ako napr Prehľad API Kotlin Collections a už spomínané Dátové triedy v Kotline.

A ako vždy, úplnú implementáciu týchto príkladov možno nájsť v našom projekte GitHub.


$config[zx-auto] not found$config[zx-overlay] not found