Sie lassen den Benutzer beispielsweise die berüchtigte Pfadvariable definieren. Wie interpretierst du?apppath = C:\Program Files\App
?
Dies sieht aus wie eine Programmiersprache, die angewendet wird, um die Leerzeichen zu ignorieren, und Sie lassen sie zur besseren Lesbarkeit um das Gleichheitszeichen herum, es kann sich jedoch um einen gültigen Variablenwert mit Leerzeichen in der Anwendung handeln (beachten Sie, dass es sich um ein Suffix handelt).
Sogar Schlüssel können Leerzeichen enthalten, nicht wahr?
Was ist die allgemeine Best Practice für meine Bewerbung? Wenn ich habe:
key-example = value-example
soll ich das Schlüsselwesen "key-example"
oder "key-example "
und den Wert als Sein "value-example"
oder interpretieren " value-example"
?
:
anstelle von zu verwenden,=
weil ich dies ausschließlich in Javascript verwende (obwohl meine Frage nicht auf meine App beschränkt ist, ist es daher irrelevant, überhaupt nach ihrer Sprache zu fragen), aber dies hat mir nicht geholfen, die Konfiguration als JSON-Objekt zu lesen . JSON erfordert alle angegebenen Werte, was für den Benutzer eine unnötige Belastung darstellt.Antworten:
Als Benutzer erwarte ich nicht, dass das Leerzeichen auf beiden Seiten des Gleichheitszeichens den Wert des Schlüssels oder den Wert ändert. Sehen Sie sich auch diese verwandte Frage unter unix.SE an, wie verwirrend die Situation sein kann.
Machen Sie es Ihren Benutzern nicht schwerer, schneiden Sie Leerzeichen sowohl vom Schlüssel als auch vom Wert ab. Wenn für führende Leerzeichen ein realer Anwendungsfall vorliegt, lassen Sie den Benutzer den Schlüssel oder Wert in Anführungszeichen setzen.
quelle
Es liegt an Ihnen, die Regeln für Ihre App zu definieren.
Zum Beispiel können Sie Folgendes definieren:
Leerzeichen vor oder nach dem Gleichheitszeichen werden ignoriert.
Leerzeichen im Schlüssel sind verboten,
Leerzeichen innerhalb des Werts können nur verwendet werden, wenn der Wert in Anführungszeichen gesetzt ist.
ist verboten, während:
ist zulässig, wodurch auch Leerzeichenpräfixe möglich sind:
Das Definieren eines Formats kann eine komplexe Aufgabe sein. Zum Beispiel:
Wie entkommen Sie Zitaten?
Wie entkommen Sie dem Escape-Zeichen, mit dem Sie Anführungszeichen umgehen?
Wie gehen Sie mit leeren Werten um?
Was ist die maximale Länge eines Schlüssels? Was ist mit einem Wert?
Wie gehen Sie mit mehrzeiligen Werten um?
Was ist mit anderen Whicpace-Unicode-Zeichen als einem Leerzeichen (z. B. einem nicht unterbrechenden Leerzeichen)?
Was ist mit Unicode- Zeichen, die normalerweise nicht auf dem Bildschirm angezeigt werden ? Wie gehen Sie beispielsweise mit den Unicode-Kategorien Cf oder Zl um?
Welche Zeichen sind im Schlüssel zulässig? Zum Beispiel ist:
ein gültiger Schlüssel?
Sollte die folgende Zeile funktionieren? ¹
Hinweis: Das Gleichheitszeichen ist kein Gleichheitszeichen, sondern das Zeichen 0xa60c (Vai-Silbenverlängerer). Obwohl nur wenige Personen dieses Symbol anstelle der Gleichheit verwenden würden, ist der häufigste Fall das Kopieren und Einfügen aus Microsoft Word (beachten Sie die Anführungszeichen genau):
usw.
Aus diesem Grund, wenn Sie ganz sicher sind , dass Sie können ein Format definieren und beschreiben sie genau und verbosely, verwenden ein Format , das bereits vorhanden ist .
JSON oder XML sind häufig verwendete Formate, die Sie in nahezu jeder Programmiersprache verwenden können. Sie können das zugrunde liegende Format sogar mithilfe einer Datenbank abstrahieren. Redis ist beispielsweise eine beliebte Lösung für das Speichern von Schlüsselwerten.
¹ Chrome-Benutzer, die Windows verwenden, sehen wahrscheinlich ein Fragezeichen in einem Quadrat. Bei anderen Browsern oder bei Chrome unter Linux erscheint das Zeichen wie ein Gleichheitszeichen und kann leicht irreführend sein: Der einzige visuelle Unterschied besteht darin, dass der Abstand zwischen den horizontalen Balken geringfügig ist.
quelle
=
und Anführungszeichen sind nicht das Problem, während es bei Leerzeichen unklar ist, weil ich sie lieber habe und dies zu Mehrdeutigkeiten führt. Es reicht aus zu sagen, dass führende / endende Leerzeichen gekürzt werden. Vielen Dank.