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)
Páčil sa ti článok? Zváž zdieľanie. Ďakujeme.