Ce face String templates ($nume, ${expresie})
Într-un text între ghilimele, $nume este înlocuit cu valoarea variabilei nume, iar ${expresie} cu rezultatul oricărei expresii: un calcul, un apel de funcție, un if. Valoarea este transformată în text cu toString(). Așa nu mai ai nevoie de concatenări lungi cu +.
Acoladele sunt necesare când după nume urmează litere (${an}a) sau când accesezi ceva cu punct: "$client.nume" pune obiectul întreg urmat de textul „.nume”, pe când "${client.nume}" pune numele.
Textele cu trei ghilimele ("""...""") pot avea mai multe rânduri și nu interpretează secvențele \n. Cu trimIndent() scoți spațiile de la începutul rândurilor. Pentru un $ literal scrii \$ (sau ${'$'} în textele cu trei ghilimele). Din Kotlin 2.2, cu $$"..." doar $$ înseamnă interpolare, iar $ simplu rămâne text.
Exemple
Exemplul 1: Variabile și expresii în text
$produs pune o variabilă, ${...} pune rezultatul unui calcul sau al unui if.
fun main() {
val produs = "caiet"
val cantitate = 4
val pret = 3.5
println("Ai cumpărat $cantitate x $produs")
println("Total: ${cantitate * pret} lei")
println("Stoc: ${if (cantitate > 3) "puțin" else "suficient"}")
println("Numele are ${produs.length} litere, cu majuscule: ${produs.uppercase()}")
}
Rezultat
Ai cumpărat 4 x caiet
Total: 14.0 lei
Stoc: puțin
Numele are 5 litere, cu majuscule: CAIET
Exemplul 2: Text pe mai multe rânduri
trimIndent() scoate indentarea comună, ca textul să arate ca în cod.
fun main() {
val nume = "Ion Popescu"
val oras = "Cluj-Napoca"
val bon = """
Bon fiscal
Client: $nume
Oraș: $oras
Total: ${2 * 24.5} lei
""".trimIndent()
println(bon)
}
Rezultat
Bon fiscal
Client: Ion Popescu
Oraș: Cluj-Napoca
Total: 49.0 lei
Exemplul 3: Semnul $ ca text
\$ scrie semnul dolar. În forma $$"..." (Kotlin 2.2), $ simplu este text și interpolarea se face cu $$.
fun main() {
val curs = 4.59
println("1 \$ costă $curs lei")
println($$"Șablon: $nume, curs curent: $$curs")
val client = Pair("Maria", 120)
println("Greșit: $client.first")
println("Corect: ${client.first}")
}
Rezultat
1 $ costă 4.59 lei
Șablon: $nume, curs curent: 4.59
Greșit: (Maria, 120).first
Corect: Maria
Greșeli frecvente
"$obiect.camp"fără acolade: se afișează obiectul întreg și apoi textul „.camp”. Scrie"${obiect.camp}".- Concatenări cu
+între un număr și un text în ordinea greșită:1 + " lei"nu compilează (Int nu areplus(String)). Folosește template-ul"$suma lei". - Uitarea lui
trimIndent()la textele cu trei ghilimele: spațiile de indentare și primul rând gol rămân în text.
Comenzi înrudite
val și var: val declară o variabilă care nu mai poate fi schimbată după atribuire; var declară una care poate primi altă valoare.true și false (Boolean): true și false sunt cele două valori ale tipului Boolean, folosite în condiții, comparații și operatori logici.fun main(): Funcția main este punctul de pornire al oricărui program Kotlin: codul din ea se execută primul.