Sono uno sviluppatore C# che cerca di imparare F #.Perché la stringa F # non può terminare con virgolette doppie in virgolette?
Per quanto ne so, F # 2.0 ha avuto due tipi di sintassi per le stringhe: stringhe normali e stringhe letterali (like C#). Con la versione F # 3.0 esiste una funzionalità denominata stringhe tra virgolette triplicate.
Per quanto vedo, con questo formato di stringa, ogni cosa tra """
è un letterale stringa letterale. E non c'è bisogno di sfuggire allo escapse sequence characters come doppi apici.
Ad esempio, tutte queste stringhe sono valide;
let a = """ This is a valid "string" """
let b = """ This is a valid \string """
let c = """ This is a valid 'string """
Ma c'è una regola con esso;
Quotes nella stringa tripla citato non possono fine con un doppio virgolette (“), ma possono iniziare con uno.
Quindi questa è una stringa legale;
let s = """"This is a valid string"""
ma questo non è;
let s = """This is a valid string""""
Perché è quello? Ho guardato Strings (F#)
on MSDN page, F# 3.0 Language Spec $3.5 Strings and Characters part e More About F# 3.0 Language Features ma non sono riuscito a trovare alcuna informazione sul perché è legale da usare all'inizio della stringa ma non alla fine.
Mi puoi illuminare?
Probabilmente confonderà il lexer/tokenizer. Immagino che ti serva solo uno spazio dopo il primo '' '. – leppie
@Downvoter cura di commentare almeno così posso vedere dove _might_ ha fatto qualcosa di sbagliato? –