Worauf kommt es an, Klammern in Lua zu verschachteln?

8

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:

%Vor%

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?

    
elersong 21.01.2014, 00:05
quelle

2 Antworten

11

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.

    
Tim Cooper 21.01.2014, 00:12
quelle
1

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%     
jv110 09.10.2016 13:51
quelle

Tags und Links