Kotlin String-sjablonen

1. Overzicht

In deze tutorial leggen we uit wat Kotlin is Draad sjablonen zijn en hoe u ze kunt gebruiken.

Bekijk een van onze Kotlin-tutorials om vertrouwd te raken met andere functies en om te weten hoe je Kotlin moet gebruiken.

2. Snaren in Kotlin

Net als in Java, Snaren in Kotlin zijn onveranderlijk. Dat betekent dat we geen middelen hebben om een Draad zodra het is gemaakt. We kunnen echter een andere afleiden Draad van een bepaalde.

Kotlin heeft Java verrijkt Draad klasse met extra functionaliteit.

Bijvoorbeeld de methode padEnd () stelt ons in staat om een Draad, zodat de uitdrukking:

"Hallo" .padEnd (10, '!')

Dat levert een nieuwe snaar op "Hallo!!!!!".

3. String-sjablonen

String-sjablonen zijn Draad literals die ingesloten uitdrukkingen bevatten.

Deze code in Java:

String bericht = "n =" + n;

In Kotlin is gewoon:

val message = "n = $ n"

Elke geldige Kotlin-expressie kan worden gebruikt in een Draad sjabloon:

val message = "n + 1 = $ {n + 1}"

In tegenstelling tot Java zijn veel constructies van Kotlin (maar zeker niet alle) uitdrukkingen.

Daarom een Draad sjabloon kan ook logica bevatten:

val message = "$ n is $ {if (n> 0)" positive "else" not positive "} 

Merk op dat er tussen de accolades een geldige Kotlin-uitdrukking staat. Dit is een reden waarom we niet ontsnappen aan de geneste dubbele aanhalingstekens.

Draad sjablonen worden opgelost door de uitdrukking te evalueren en een toString () methode op basis van het resultaat van de evaluatie.

Draad sjablonen kunnen worden genest:

val message = "$ n is $ {if (n> 0)" positief "else if (n <0)" negatief en $ {if (n% 2 == 0) "even" else "odd"} "else" nul"}"

De Draad sjabloon parser begint het op te lossen vanuit de meest geneste sjabloon, evalueert het en roept een toString () methode erop.

Hoewel de Draad sjablonen kunnen genest zijn, het is een goed idee om ze zo eenvoudig mogelijk te maken. Dit is helemaal niet moeilijk omdat Kotlin ons veel handige tools biedt.

Wat als we een onbewerkt dollarteken willen gebruiken en niet als onderdeel van een Draad sjabloon?

Dan ontsnappen we eraan door er een backslash voor te plaatsen:

val message = "n = \ $ n"

Wat volgt op het dollarteken wordt een gewoonte Draad - het wordt niet meer geëvalueerd en het wordt geïnterpreteerd zoals het is.

4. Ruwe snaren

In Kotlin hebben we bovendien onbewerkte tekenreeksen met drie aanhalingstekens die speciale tekens kunnen bevatten zonder dat ze eraan hoeven te ontsnappen.

Het resultaat Draad staat tussen twee opeenvolgende niet-overlappende exemplaren van drievoudige dubbele aanhalingstekens .

Bijvoorbeeld, in Java, om op de juiste manier een Draad met een bestandspad in Windows-stijl naar een bron op C: \ Repository \ read.me, we zouden het op deze manier moeten definiëren:

String path = "C: \ Repository \ read.me"

In Kotlin kunnen we de drievoudige notatie gebruiken om hetzelfde resultaat te bereiken:

val path = "" "C: \ Repository \ read.me" ""

We kunnen deze notatie gebruiken om een ​​meerregelige tekst te maken Draad:

val ontvangst = "" "Artikel 1: $ 1,00 Artikel 2: $ 0,50" ""

Dat creëert een Draad dat precies twee regels beslaat. Als we de voorkeur geven aan deze inspringing:

val ontvangst = "" "Artikel 1: $ 1,00> Artikel 2: $ 0,50" "". trimMargin (">")

We gebruiken een trimMargin () methode die eventuele witte spaties verwijdert vanaf het begin van elke regel tot het eerste voorkomen van het marge-voorvoegsel (> in het bovenstaande voorbeeld).

Strings met drie aanhalingstekens ondersteunen geen escape-reeksen. Het betekent dat als we schreven

val ontvangst = "" "Artikel 1: $ 1,00 \ nItem 2: $ 0,50" ""

om een ​​tweelijns te krijgen Draad, we zouden een enkele regel krijgen met de karakters \ n in plaats van het verwachte regeleinde.

Drievoudig geciteerd Snaren ondersteunen echter sjablonen.

Het betekent dat elke reeks die begint met het dollarteken, wordt omgezet in een string op een manier zoals we in de vorige sectie hebben beschreven. We kunnen dit feit gebruiken om de ontsnappingskarakters te laten werken:

val ontvangst = "" "Artikel 1: $ 1,00 $ {" \ n "} Artikel 2: $ 0,50" ""

5. Conclusie

In dit artikel hebben we een kenmerk van de Kotlin-taal besproken die afwezig is in Java - Draad Sjablonen. We hebben hun gebruik geïllustreerd in het geval van gewone lijnen en meerdere lijnen Snaren.

Mogelijk vindt u alle codefragmenten die hier worden genoemd in onze repository op GitHub.


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