De eerste stap
Gebruik name om de begroeting Welkom, Sam! op de eerste regel te tonen.
Een wandelplanner stuurt een bericht met de naam van de wandelaar en de afstand van de volgende route. Die gegevens horen bij elkaar in één leesbare zin. Met invulplaatsen kun je dezelfde tekstvorm voor verschillende waarden gebruiken.
Je kunt met let ook een tekstwaarde een naam geven. Bij let walker = "Noor"; verwijst de naam walker naar de geschreven tekst. Voor deze les hoef je de precieze Rust-teksttypen nog niet te kennen; je leest de waarde en toont haar.
De eerste string in println! heet hier de formaattekst. Daarin schrijf je de vaste delen van het bericht en markeer je de plaatsen waar waarden moeten komen. Zo houd je de zin overzichtelijk, ook wanneer er meer dan één gegeven in staat.
Rust kan een beschikbare naam direct uit de formaattekst lezen. Bij println!("Hoi, {walker}!"); staat de naam tussen accolades. De macro vult de waarde in en de accolades zelf verdwijnen uit het bericht.
De spatie na de komma hoort bij de vaste tekst. Rust vult gegevens in, maar verzint er geen ontbrekende leestekens bij. Schrijf dus buiten de invulplaats precies de woorden en tekens die je wilt tonen.
Je gebruikte in de vorige les al een naam als enige inhoud van de formaattekst. Hier combineer je diezelfde techniek met een begroeting. De handeling blijft hetzelfde: de naam wordt gelezen op het moment van de aanroep.
Een argument is een waarde of berekening die je aan een aanroep meegeeft. Voor een berekening gebruik je een lege invulplaats {} in de tekst. De berekening zelf staat na de komma, bijvoorbeeld println!("Hierna: {} km", distance + 2);.
Rust rekent distance + 2 uit en gebruikt de uitkomst voor de lege invulplaats. De variabele distance krijgt daardoor geen nieuwe waarde. Met meerdere lege plaatsen volgen de bijbehorende argumenten in dezelfde volgorde na de tekst.
Voorspel de begroeting en beide afstanden voordat je dit programma uitvoert. De laatste aanroep laat twee lege invulplaatsen en hun argumenten naast elkaar zien.
fn main() {
let walker = "Noor";
let distance = 6;
println!("Hoi, {walker}!");
println!("Hierna: {} km", distance + 2);
println!("Vandaag: {} km, hierna: {} km", distance, distance + 2);
}Hoi, Noor! Hierna: 8 km Vandaag: 6 km, hierna: 8 km
| Invulplaats | Bijbehorend gegeven |
|---|---|
{walker} | De bestaande naam walker. |
Eerste {} in de laatste aanroep | distance, hier 6. |
Tweede {} in de laatste aanroep | distance + 2, hier 8. |
De korte vorm {walker} is voor een bestaande naam. Je kunt er niet zomaar een rekenuitdrukking van maken. De foutvariant probeert distance + 2 rechtstreeks tussen de accolades in de formaattekst te zetten.
fn main() {
let distance = 6;
println!("Hierna: {distance + 2} km");
}invalid format string
De compiler meldt invalid format string: de geschreven formaattekst voldoet niet aan de regels. Er verschijnt geen wandelbericht, omdat dit programma niet tot uitvoering komt. Gebruik een lege plaats {} en geef de berekening na de komma mee om dit te herstellen.
Met die scheiding kun je code en tekst ook makkelijker controleren. Lees eerst de zin alsof de invulplaatsen al gevuld zijn. Lees daarna de argumenten om te bepalen of ieder gegeven op de juiste plaats terechtkomt.
De oefening heeft de naam name en het getal lessons al beschikbaar gemaakt. Gebruik de naam in de begroeting. Voor het volgende lesnummer moet je eerst een optelling uitvoeren; kies daarvoor de vorm met de lege invulplaats en een apart argument.
Controleer na uitvoering de twee volledige regels, inclusief spaties en leestekens. Als de compiler de formaattekst afwijst, kijk dan eerst naar de accolades en naar waar de berekening staat. Als het programma wel draait maar een verkeerd getal toont, controleer dan de berekening zelf.
Gebruik name om de begroeting Welkom, Sam! op de eerste regel te tonen.
Gebruik lessons om Volgende les: 5 op de tweede regel te tonen. Tel er eerst één bij op.
{}.Je kunt nu tekst, namen en berekeningen combineren. In een volgende module kies je met voorwaarden welke instructies worden uitgevoerd.
Voer je code uit en ontdek
wat je hebt gemaakt.
Je hoeft het niet in één keer goed te doen. Na het uitvoeren zie je hier welke stappen al kloppen.