12 Stimmen

Warum verwenden gängige Programmiersprachen keine anderen Zeichen zur Abgrenzung von Zeichenketten?

Jede Programmiersprache, die ich kenne (Perl, Javascript, PHP, Python, ASP, ActionScript, Commodore Basic) verwendet einfache und doppelte Anführungszeichen zur Abgrenzung von Zeichenketten .

Dies führt dazu, dass man sich immer wieder an folgende Stellen wenden muss große Längen um Anführungszeichen korrekt zu behandeln, da das Anführungszeichen im Inhalt von Zeichenketten sehr häufig vorkommt.

Warum verwenden Programmiersprachen nicht ein anderes Zeichen zur Abgrenzung von Zeichenketten ein Begriff, der im normalen Sprachgebrauch nicht verwendet wird \, | oder { } zum Beispiel), damit wir einfach mit unserem Leben weitermachen können?

Stimmt das, oder übersehe ich etwas? Gibt es eine einfache Möglichkeit, in einer modernen Programmiersprache keine Anführungszeichen mehr für Zeichenketten zu verwenden?

drucken <<<END
Ich weiß von hier dokumentieren Syntax, aber für kleinere Zeichenkettenmanipulationen ist sie übermäßig kompliziert und erschwert die Formatierung.
ENDE;

[UPDATE] Viele von Ihnen haben darauf hingewiesen, wie wichtig es ist, nur ASCII-Zeichen zu verwenden. Ich habe die Beispiele aktualisiert, um dies zu berücksichtigen (die Backslash die Rohr y Hosenträger ).

6 Stimmen

Sie sagen, dass Programmierer gehen müssen große Längen Anführungszeichen in Zeichenketten zu verwenden - aber warum? Ich kenne keine Programmiersprache, die nicht über einen anständigen und recht einfachen Escape-Mechanismus für Anführungszeichen in Strings verfügt.

1 Stimmen

Dafür gibt es viele Gründe: PHP hat magische Anführungszeichen, die manchmal ein- und manchmal ausgeschaltet sind, was bedeutet, dass unerfahrene Programmierer nicht sicher sind, ob sie Anführungszeichen auslassen sollen. Außerdem muss man beim Speichern, Drucken, bei der Verwendung von Funktionen wie eval() usw. immer im Auge behalten, ob eine Zeichenkette escaped ist oder nicht. Und das bedeutet, dass das Risiko einer Sql-Injection für Leute, die keine Best Practices anwenden, dramatisch ansteigt.

0 Stimmen

Wie viele Tastenanschläge benötigen Sie, um diese Zeichen (¤, |, § oder µ) zu erhalten? Alles über 2 ist (IMO) weniger produktiv als die Verwendung von einfachen oder doppelten Anführungszeichen selbst.

2voto

Lasse V. Karlsen Punkte 364542

Ein guter Grund dafür ist wahrscheinlich, dass man nicht wirklich eine neue Sprache schafft, wenn dies das Einzige ist, was man an einer bestehenden Sprache verbessern will.

Und wenn Sie eine neue Sprache erstellen, ist die Auswahl des richtigen Zeichens für die Anführungszeichen wahrscheinlich weit, weit unten auf der ToDo-Liste der Dinge, die tatsächlich zu implementieren sind.

1voto

Wahrscheinlich wäre es am besten, ein Trennzeichen zu wählen, das auf allen gängigen Tastaturen und Terminal-Darstellungen vorhanden ist, so dass die meisten der von Ihnen vorgeschlagenen nicht in Frage kommen...

Und in jedem Fall wird ein Zitiermechanismus weiterhin notwendig sein... Sie verringern die Anzahl der Zitate um den Preis, dass die Sprache für Nicht-Fachleute schwerer zu lesen ist.

Es ist also nicht ganz klar, dass dies ein Gewinn ist, und dann ist da noch die Macht der Gewohnheit.

1voto

T.E.D. Punkte 42630

Ada verwendet keine einfachen Anführungszeichen für Zeichenketten. Diese sind nur für Zeichen gedacht und müssen innerhalb von Zeichenketten nicht escaped werden.

Ich finde es sehr selten, dass das Zeichen für Anführungszeichen in einer normalen Textzeichenfolge auftaucht, die ich in ein Computerprogramm eingebe. Wenn es vorkommt, dann fast immer, weil ich diese Zeichenfolge an einen Befehlsinterpreter weitergebe und eine andere Zeichenfolge darin einbetten muss.

Ich könnte mir vorstellen, dass der Hauptgrund dafür, dass keines dieser anderen Zeichen für Zeichenkettenbegrenzer verwendet wird, darin liegt, dass sie nicht in der ursprünglichen 7-Bit-ASCII-Code-Tabelle enthalten sind. Vielleicht ist das heutzutage keine gute Ausrede mehr, aber in einer Welt, in der die meisten Sprachentwickler Angst haben, sich gegen die wahnsinnig beschissene C-Syntax zu stemmen, wird man nicht viele Abnehmer für eine ungewöhnliche Wahl von String-Begrenzern finden.

0 Stimmen

Doppelte Anführungszeichen kommen häufig in Produktnamen vor: Converse "Chuck Taylor" Basketball-Schuhe, zum Beispiel.

1voto

Steven Hepting Punkte 12116

In Python können Sie einfache und doppelte Anführungszeichen mischen, um Anführungszeichen in Zeichenketten zu setzen.

print "Please welcome Mr Jim 'Beaner' Wilson."
>>> Please welcome Mr Jim 'Beaner' Wilson.

print 'Please welcome Mr Jim "Beaner" Wilson.'
>>> Please welcome Mr Jim "Beaner" Wilson

Sie können auch die bereits erwähnten dreifachen Anführungszeichen verwenden. Diese erstrecken sich ebenfalls über mehrere Zeilen, damit Sie keine Zeilenumbrüche drucken müssen.

print """Please welcome Mr Jim "Beaner" Wilson."""
>>> Please welcome Mr Jim "Beaner" Wilson

Schließlich können Sie Zeichenketten auf dieselbe Weise drucken wie alle anderen.

print "Please welcome Mr Jim \"Beaner\" Wilson."
>>> Please welcome Mr Jim "Beaner" Wilson

0 Stimmen

Von allen Möglichkeiten, die ich für den Umgang mit Strings kenne, gefällt mir der Ansatz von Python am besten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X