Entwicklung / ROBLOX
Fortschritt als Luau-Text: Zahl und Beschriftung trennen
Erzeuge eine verständliche Fortschrittsanzeige, behandle eine fehlgeschlagene Umwandlung und vergleiche Mengen nicht als Text.
Mit einem kleinen Lieferzähler beginnen #
Stelle dir eine Übungsroute mit zwanzig Paketen vor, von denen sieben erledigt sind. Für die Berechnung zählt die Zahl 7; die lesbare Beschriftung ist eine eigene Darstellung dieses Werts. Lege zuerst fest, welche Variable die erledigte Arbeit speichert und welcher Ausdruck den Anzeigetext erzeugt. Danach lässt sich eine tatsächliche Oberfläche gezielt anschließen.
Die Werte dieser Übung sind vom Autor gewählt. Der Code liest keine Spielernachrichten, vergibt keine Belohnung und speichert keinen Fortschritt. Eine Konsolenausgabe reicht für die Untersuchung der Zeichenketten aus. Schreibe das erwartete Ergebnis mit allen Leerzeichen vorher auf, damit ein erfolgreicher Lauf eine konkrete und nachvollziehbare Bedeutung bekommt.
Eine Beschriftung aus Zahlen erzeugen #
Führe das erste Beispiel in einem Luau-Interpreter oder einem getrennten Übungsskript aus. completed und total bleiben Zahlen. tostring liefert ihre Textdarstellung; zwei Punkte verbinden die Teile. Leerzeichen gehören zu den angegebenen Zeichenketten. Die erste Ausgabe muss deshalb vollständig Parcels: 7 / 20 lauten, einschließlich der Abstände um den Schrägstrich.
Die nächste Ausgabe verwendet string.format und die Platzhalter %d für dieselben ganzen Zahlen. Sie ergibt die gleiche Beschriftung. Formatierung verändert completed nicht. Erhöhst du den Zahlenwert später, musst du die Beschriftung erneut aus dem neuen Wert bilden. Ein zuvor gespeicherter Text aktualisiert sich nicht automatisch und kann sonst den alten Stand behalten.
local completed = 7
local total = 20
local caption = "Parcels: " .. tostring(completed) .. " / " .. tostring(total)
print(caption)
print(string.format("Parcels: %d / %d", completed, total))Wortwahl und Abstände festlegen #
Verkettung ergänzt keinen eigenen Abstand zwischen benachbarten Teilen. Das Wort Parcels unmittelbar vor einer Zahl ist ohne Doppelpunkt und Leerzeichen schwerer lesbar. Halte die Satzzeichen in einer sichtbaren Vorlage zusammen, statt sie auf mehrere unabhängige Anweisungen zu verteilen. Vergleiche die gesamte Ausgabe mit der erwarteten Zeile und beachte dabei auch unscheinbare Leerzeichen.
Ganzzahlige Platzhalter passen hier, weil ausschließlich ganze Pakete vorkommen. Ein Bruchteil erfordert eine bewusst gewählte Darstellung; %d verspricht nicht, alle Nachkommastellen zu erhalten. Prozentangaben, Rundung und andere Einheiten sind spätere Entscheidungen. Definiere zunächst deren gewünschte Ausgabe und prüfe das neue Beispiel anschließend gezielt, anstatt die bisherige Prüfung darauf zu übertragen.
Eine bekannte Zahlenzeichenkette umwandeln #
Das zweite Beispiel beginnt mit dem vom Autor vorgegebenen Text "7". tonumber versucht eine Umwandlung und liefert bei einem Fehlschlag nil. Der ausdrücklich geprüfte nil-Zweig meldet ungültigen Fortschritt und gibt eine Ersatzbeschriftung zurück. Nach erfolgreicher Umwandlung entsteht die normale formatierte Anzeige. Ungültiger Text wird dadurch nicht unbemerkt als Null ausgegeben.
Als negativen Fall erhält das Beispiel "seven". Es schreibt Invalid progress und danach Parcels: unavailable. Eine Umwandlung ist noch keine vollständige Spielregel: Eine spätere Verarbeitung benötigt gegebenenfalls erlaubte Grenzen und eine Prüfung auf ganze Zahlen. Diese Übung verwendet weder Spielereingaben noch angezeigte Chatnachrichten. Solche Systeme gehören nicht zum nachgewiesenen Umfang des Beispiels.
local function progressCaption(raw)
local completed = tonumber(raw)
if completed == nil then
print("Invalid progress")
return "Parcels: unavailable"
end
return string.format("Parcels: %d / %d", completed, 20)
end
print(progressCaption("7"))
print(progressCaption("seven"))Beschriftungen nicht numerisch sortieren #
Der Vergleich von "100" und "20" als Zeichenketten fragt nach Textreihenfolge statt nach numerischer Größe. Das erste Zeichen kann die Reihenfolge festlegen, bevor weitere Ziffern eine Rolle spielen. Im Übungsfall ergibt der Textvergleich true, obwohl die Zahl 100 größer als 20 ist. Diese Abweichung zeigt einen Fehler in der Wahl des Datentyps.
Vergleiche Mengen als Zahlen oder wandle bekannte Texte um und behandle nil vorher. Zusätzliche führende Nullen in der sichtbaren Beschriftung lösen die grundsätzliche Trennung nicht, außer eine feste textuelle Sortierung ist tatsächlich das gewählte Ziel. Eine bequem lesbare Darstellung soll nicht bestimmen, wie viel Arbeit erledigt wurde oder welche Zahl größer ist.
Umwandlung und Regeln getrennt prüfen #
Eine erfolgreiche Umwandlung sagt, dass sich der Text als Zahl verstehen lässt. Sie sagt nicht, dass diese Zahl als Paketanzahl zulässig ist. Negative Werte, Bruchteile und Werte über total können numerisch sein und trotzdem gegen die vorgesehene Regel verstoßen. Beschreibe diese Entscheidungen, bevor jemand die produktive Prüfung schreibt und sich auf das Beispiel verlässt.
Die Demonstration prüft bewusst eine bekannte Zahlenzeichenkette und ein eindeutig ungültiges Wort. Die ausführbaren Zusicherungen prüfen außerdem Textreihenfolge gegen Zahlenreihenfolge. Sie bestätigen nicht jede mögliche Eingabe, alle Sprachen oder eine veröffentlichte Roblox-Erfahrung. Nenne diesen begrenzten Umfang bei der Übergabe und liste zusätzliche fachliche Prüfungen als zukünftige Arbeit auf.
Wörter übersetzen und Werte behalten #
Die Erklärung darf die Beschriftung auf Deutsch beschreiben. Die Codebeispiele behalten jedoch eine feste englische Ausgabe, sodass Leser aller Sprachfassungen dieselbe Prüfung wiederholen können. In einer echten lokalisierten Oberfläche gehören Wörter und Satzzeichen in eine passende übersetzte Vorlage. Die numerische Bedeutung des Fortschritts bleibt von deren Sprache und Wortreihenfolge unabhängig.
Prüfe bei einer späteren Oberflächenanbindung einen längeren Text und eine Rechts-nach-links-Anordnung gesondert. Dieser Artikel zeigt diese Anbindung nicht und beweist keine passende Darstellung auf einem Telefon. Übertragbar ist die Datengrenze: Zahlen dienen Berechnungen, lokalisierte Texte dem Lesen. Größe, Richtung und sichtbare Aktualisierung eines realen Objekts brauchen eine eigene Beobachtung.
| Eingabe | Erwartete Ausgabe |
|---|---|
| Zahlen 7 und 20 | Parcels: 7 / 20 |
| Text 7 | Parcels: 7 / 20 |
| Wort seven | Fehler und Ersatzbeschriftung |
| Texte 100 und 20 | Textvergleich ergibt true |
Ein wiederholbares Ergebnis übergeben #
Bewahre beide Quelldateien, die erwartete Ausgabe und die Datei mit Zusicherungen zusammen auf. Notiere den tatsächlich verwendeten Interpreter und seinen erfolgreichen Abschluss. Eine andere Person sollte Beschriftung und Fehlerzweig ohne Konto, Server oder Zugriff auf dein veröffentlichtes Spiel wiederholen können. Ein passender Dateiname allein belegt weder Inhalt noch ausgeführte Prüfung.
Frage vor einer Erweiterung, ob Berechnungen weiterhin Zahlen verwenden, fehlgeschlagene Umwandlungen einen ausdrücklichen Zweig haben und sämtliche Trennzeichen in der Beschriftung stimmen. Formuliere die nächste reale Anbindung als getrennten Schritt. Eine richtige Konsolenausgabe belegt diese Zeichenkettenoperationen; sie belegt keine Speicherung, Spieleranzeige oder Veränderung einer bestehenden Erfahrung.
| Aufzeichnung | Was übergeben |
|---|---|
| Daten | completed und total als Zahlen |
| Beschriftung | Vorlage und vollständige Ausgabe |
| Fehler | nil-Zweig und Ersatztext |
| Prüfung | Interpreter und echte Ausgabe |