Ich lerne gerade Lua für iOS-Spiele-Entwicklung, da ich viele sehr gute Dinge darüber gehört habe. Ich bin sehr beeindruckt von der Dokumentation, die für die Sprache vorhanden ist, was das Lernen viel einfacher macht.
Mein Problem ist, dass ich ein Lua-Konzept gefunden habe, für das niemand eine "Anfänger" -Erklärung zu haben scheint: verschachtelte Klammern für Anführungszeichen. Zum Beispiel wurde mir beigebracht, dass lange Zeichenketten mit einfachen und doppelten Anführungszeichen wie folgt aussehen:
%Vor%könnte auch ohne die umgebenden Zitate geschrieben werden. Stattdessen würde man sie einfach durch doppelte Klammern ersetzen, wie folgt:
%Vor% Diese beiden ergeben für mich einen vollständigen Sinn. Aber ich kann auch die Zeile string_2
mit "verschachtelten Klammern" schreiben, die wie folgt die gleichen Vorzeichen zwischen den beiden Sätzen der doppelten Klammern enthalten:
Meine Frage ist einfach. Was ist der Sinn der Syntax in string_3
? Es gibt dasselbe Ergebnis wie string_1
und string_2
, wenn es als Eingabe für print()
angegeben wird. Daher verstehe ich nicht, warum verschachtelte Klammern überhaupt existieren. Kann jemand bitte einem Noob (mir) helfen, eine Perspektive zu bekommen?
Es wird verwendet, wenn Ihre Zeichenfolge eine Teilzeichenfolge enthält, die dem Trennzeichen entspricht. Zum Beispiel wäre das Folgende ungültig:
%Vor%Damit es wie erwartet funktioniert, müssen Sie daher ein anderes Zeichenfolgentrennzeichen verwenden, wie im Folgenden:
%Vor% Ich denke, es ist sicher zu sagen, dass nicht viele String-Literale den Teilstring ]]
enthalten, in welchem Fall es keinen Grund gibt, die obige Syntax zu verwenden.
Es hilft, sie zu verschachteln:
%Vor%Wird gedruckt:
%Vor%Aber wenn das nicht nützlich genug ist, können Sie sie verwenden, um ganze Programme in eine Zeichenfolge zu setzen:
%Vor%Wird gedruckt:
%Vor%Ich benutze sie persönlich für meine statische / dynamische Bibliotheksimplementierung. Für den Fall, dass Sie nicht wissen, ob das Programm eine schließende Klammer mit der gleichen Menge von = s hat, sollten Sie es mit etwas wie diesem bestimmen:
%Vor%