Frage

Wie ist es möglich, für F # Format-Strings bei der Kompilierung zu prüfen, ob die x zu bestimmen, int in der folgenden Definition geben?

let foo x = sprintf "%d" x`? 

Ist das hartcodiert in die Sprache oder könnte jemand ihre eigene „my_print“ Funktion schreiben, die Format-Strings mit einer anderen Syntax verwendet? Zum Beispiel:

let foo x = my_print "{integer}" x
War es hilfreich?

Lösung

Sie können ein wenig über sie in 6.4.17 ( 'printf' Formate) hier , aber kurz

  • es in die Sprache integriert
  • Stringliterale effektiv ‚gezwungen‘ in den seltsamen ‚Format‘ Typen wird
  • printf und Freunde erwarten ein erstes Argument des Format-Typs, so dass der Zwang geschehen

Das Nettoergebnis ist, dass Sie Ihre eigenen printf-Stil Funktionen aufbauen können, müssen aber die gleichen% s-Formate verwenden, da das Zeug ist eingebaut.

Andere Tipps

Hier ist ein Beispiel, wie Sie Ihre eigenen printf- bauen Stil Funktionen in F #. Sie können die Formatbezeich ändern (zum Beispiel „% d“), aber Sie können die vorhandenen Planer nutzen, um zusätzliche String-Formatierungsfunktionen zu erstellen, die der Compiler Check geben wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top