Ich bin ein C# -Entwickler, der versucht, F # zu lernen.Warum F # string kann nicht mit Doppelzitat in der Dreifach-Anführungszeichen enden?
Soweit ich weiß, F # 2.0 hatte zwei Arten von Syntaxen für Strings: normale Strings und wörtlich Strings (like C#). Bei der F # 3.0-Version gibt es eine Funktion namens mit dreifach-zitierten Strings.
Soweit ich sehe, ist mit diesem String-Format, alles zwischen """
ein wörtliches String-Literal. Und es gibt keine Notwendigkeit, escapse sequence characters wie doppelte Anführungszeichen zu entkommen.
Zum Beispiel alle diese sind gültige Zeichenfolgen;
let a = """ This is a valid "string" """
let b = """ This is a valid \string """
let c = """ This is a valid 'string """
Aber es gibt eine Regel mit ihm;
Zitate in dem Triple-String in Anführungszeichen nicht Ende mit einem doppelten Anführungszeichen („), aber es können mit einer beginnen.
Also dies ist eine legale Zeichenfolge;
let s = """"This is a valid string"""
aber das ist nicht;
let s = """This is a valid string""""
Warum ist das? Ich schaute auf Strings (F#)
on MSDN page, F# 3.0 Language Spec $3.5 Strings and Characters part und More About F# 3.0 Language Features, aber ich konnte keine Informationen darüber finden, warum es legal ist, am Anfang von String zu verwenden, aber nicht am Ende.
Können Sie mich aufklären?
Wahrscheinlich wird der Lexer/Tokenizer verwirren. Ich denke du brauchst nur ein Leerzeichen nach dem ersten '' '. – leppie
@Downvoter Vorsicht, zumindest zu kommentieren, damit ich sehen kann, wo _might_ etwas falsch gemacht hat? –