Predstav si, že chceš manipulovať so stringom. Máš text, ktorý chceš upraviť, napríklad každé druhé písmeno chceš dať veľkým písmenom. Každé prvé bude malým. Máš takúto metódu v Stringu? Nie. Teda nie je možné zavolať napríklad: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tempus magna. .toLowerUpper(); Takáto metóda v string neexistuje a máme chybu. Nemáme prístup k zdrojovým kódom string aby sme si to tam doplnili. No môžeme použiť fintu a tou sú exension functions. Ćo potrebujeme spraviť je napísať funkciu, ktorá nám spraví to čo požadujeme: Teraz napíšeme algoritmus: fun toLowerUpper(text: String): String{ val finalString = StringBuilder() for (i in 0 until text.length) { if (i % 2 == 0) { finalString.append(text.toLowerCase()i]) } else { finalString.append(text.toUpperCase()i]) } } return finalString.toString() } Takto je to normálna hodnota, ale ak chcem aby sa táto metóda dala používať priamo pri Stringu, tak pre názov metódy napíšeme typ a bodku teda String.: fun String.toLowerUpper(): String{ val finalString = StringBuilder() for (i in 0 until this.length) { if (i % 2 == 0) { finalString.append(this.toLowerCase()i]) } else { finalString.append(this.toUpperCase()i]) } } return finalString.toString() } Teraz nepotrebujeme parameter funkcie s názvom text. Zmažeme ho a k hodnote nad ktorou voláme metódu sa dostaneme pomocou this.: fun String.toLowerUpper(): String{ val finalString = StringBuilder() for (i in 0 until this.length) { if (i % 2 == 0) { finalString.append(this.toLowerCase()i]) } else { finalString.append(this.toUpperCase()i]) } } return finalString.toString() } A zrazu metóda ToLowerUper funguje aj takto: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eu tempus magna. .toLowerUpper(); Dôležité je zapamätať si, že naše extension funkcie musia byť v tom istom projekte ako kód kde ich používame. Najnovšie články Písanie kódu – programovanie v Jave Naprogramuj si vlastnú Android aplikáciu v jazyku Kotlin Divi scroll efekty Dizajnujem web v Divi téme (WordPress) Divi najlepšia WordPress téma 9 dôvodov prečo ju používať (2020) The post Kotlin extension functions appeared first on JaroslavBeno.