Erste Schritte mit F# in Visual Studio Code
Sie können F# in Visual Studio Code mit dem Ionide-Plug-In schreiben, um eine plattformübergreifende einfache IDE-Umgebung (Integrated Development Environment) mit IntelliSense und Coderefactorings zu erhalten. Besuchen Sie Ionide.io, um mehr über das Plug-In zu erfahren.
Anmerkung
Stellen Sie vor Beginn sicher, dass Sie sowohl F# als auch das Ionide-Plug-Ininstalliert haben.
Erstellen Sie Ihr erstes Projekt mit Ionide
Um ein neues F#-Projekt zu erstellen, öffnen Sie eine Befehlszeile, und erstellen Sie ein neues Projekt mit der .NET CLI:
dotnet new console -lang "F#" -o FirstIonideProject
Wechseln Sie nach Abschluss des Vorgangs zum Verzeichnis des Projekts, und öffnen Sie Visual Studio Code:
cd FirstIonideProject
code .
Nachdem das Projekt in Visual Studio Code geladen wurde, sollte der F#-Bereich „Projektmappen-Explorer“ links im geöffneten Fenster zu sehen sein. Dies bedeutet, dass Ionide das gerade erstellte Projekt erfolgreich geladen hat. Sie können vor diesem Zeitpunkt Code im Editor schreiben, aber sobald dies geschieht, ist der Ladevorgang abgeschlossen.
Schreiben Ihres ersten Skripts
Nachdem Sie Visual Studio Code für die Verwendung von .NET Core-Skripts konfiguriert haben, navigieren Sie in Visual Studio Code zur Explorer-Ansicht, und erstellen Sie eine neue Datei. Nennen Sie ihn MyFirstScript.fsx.
Fügen Sie nun den folgenden Code hinzu:
let toPigLatin (word: string) =
let isVowel (c: char) =
match c with
| 'a' | 'e' | 'i' | 'o' | 'u'
| 'A' | 'E' | 'I' | 'O' | 'U' -> true
|_ -> false
if isVowel word[0] then
word + "yay"
else
word[1..] + string(word[0]) + "ay"
Diese Funktion konvertiert ein Wort in eine Form von Pig Latin. Der nächste Schritt besteht darin, sie mit F# Interactive (FSI) auszuwerten.
Markieren Sie die gesamte Funktion (sie sollte 11 Zeilen aufweisen). Sobald sie markiert ist, drücken Sie bei gedrückter ALT-TASTE die EINGABETASTE. Sie werden feststellen, dass ein Terminalfenster unten auf dem Bildschirm angezeigt wird, und es sollte ähnlich wie folgt aussehen:
Dies hat drei Dinge getan:
- Der FSI-Prozess wurde gestartet.
- Der markierte Code wurde an den FSI-Prozess gesendet.
- Der FSI-Prozess hat den von Ihnen gesendeten Code ausgewertet.
Da es sich bei dem, was Sie gesendet haben, um eine Funktion handelt, können Sie diese jetzt mit FSI aufrufen! Geben Sie im interaktiven Fenster Folgendes ein:
toPigLatin "banana";;
Sie sollten das folgende Ergebnis sehen:
val it: string = "ananabay"
Jetzt versuchen wir es mit einem Vokal als ersten Buchstaben. Geben Sie Folgendes ein:
toPigLatin "apple";;
Das folgende Ergebnis wird angezeigt:
val it: string = "appleyay"
Die Funktion scheint wie erwartet zu funktionieren. Herzlichen Glückwunsch, Sie haben gerade Ihre erste F#-Funktion in Visual Studio Code geschrieben und mit FSI ausgewertet!
Anmerkung
Wie Sie vielleicht bemerkt haben, werden die Zeilen in FSI mit ;;
beendet. Dies liegt daran, dass Sie mit FSI mehrere Zeilen eingeben können. Die ;;
am Ende teilt FSI mit, wann der Code abgeschlossen ist.
Erklärung des Codes
Wenn Sie nicht sicher sind, was der Code tatsächlich tut, finden Sie hier eine schrittweise Anleitung.
Wie Sie sehen können, ist toPigLatin
eine Funktion, die ein Wort als Eingabe verwendet und in eine Pig-Latin Darstellung dieses Worts konvertiert. Die Regeln hierfür sind wie folgt:
Wenn das erste Zeichen in einem Wort mit einem Vokal beginnt, fügen Sie "yay" am Ende des Worts hinzu. Wenn es nicht mit einem Vokal beginnt, verschieben Sie dieses erste Zeichen an das Ende des Worts und fügen Sie "ay" hinzu.
Möglicherweise haben Sie Folgendes in FSI bemerkt:
val toPigLatin: word: string -> string
Dies besagt, dass toPigLatin
eine Funktion ist, die eine string
als Eingabe (word
) einnimmt und eine weitere string
zurückgibt. Dies wird als die Typsignatur der Funktionbezeichnet, ein grundlegender Bestandteil von F#, der entscheidend ist, um F#-Code zu verstehen. Sie werden dies auch bemerken, wenn Sie mit dem Mauszeiger auf die Funktion in Visual Studio Code zeigen.
Im Körper der Funktion werden Ihnen zwei unterschiedliche Teile auffallen:
Eine innere Funktion, die als
isVowel
bezeichnet wird, bestimmt, ob ein bestimmtes Zeichen (c
) ein Vokal ist, indem überprüft wird, ob es mit einem der bereitgestellten Muster über Musterabgleichübereinstimmt:let isVowel (c: char) = match c with | 'a' | 'e' | 'i' | 'o' | 'u' | 'A' | 'E' | 'I' | 'O' | 'U' -> true |_ -> false
Ein
if..then..else
Ausdruck, der überprüft, ob das erste Zeichen ein Vokal ist, und erstellt einen Rückgabewert aus den Eingabezeichen basierend darauf, ob das erste Zeichen ein Vokal war oder nicht:if isVowel word[0] then word + "yay" else word[1..] + string(word[0]) + "ay"
Der Ablauf von toPigLatin
ist also wie folgt:
Überprüfen Sie, ob das erste Zeichen des Eingabeworts ein Vokal ist. Falls ja, „yay“ am Ende des Worts anfügen. Andernfalls dieses erste Zeichen an das Ende des Worts verschieben und „ay“ anfügen.
Als Letztes ist Folgendes zu beachten: In F# gibt es keine explizite Anweisung, die von der Funktion zurückgegeben werden soll. Dies liegt daran, dass F# ausdrucksbasiert ist und der letzte Ausdruck im Textkörper einer Funktion den Rückgabewert dieser Funktion bestimmt. Da if..then..else
selbst ein Ausdruck ist, bestimmt die Auswertung des Rumpfs des then
-Blocks oder des Rumpfs des else
-Blocks den Wert, der von der toPigLatin
-Funktion zurückgegeben wird.
Verwandle die Konsolen-App in einen Pig Latin-Generator
In den vorherigen Abschnitten in diesem Artikel wurde ein allgemeiner erster Schritt beim Schreiben von F#-Code veranschaulicht: das Schreiben einer ersten Funktion und die interaktive Ausführung mit FSI. Dies wird als REPL-gesteuerte Entwicklung bezeichnet, wobei REPL- für "Read-Evaluate-Print Loop" steht. Dies ist eine hervorragende Möglichkeit, mit Funktionen zu experimentieren, bis Sie ein brauchbares Ergebnis erhalten.
Der nächste Schritt in der REPL-basierten Entwicklung besteht darin, funktionierenden Code in eine F#-Implementierungsdatei zu verschieben. Sie kann dann vom F#-Compiler in eine Assembly kompiliert werden, die ausgeführt werden kann.
Öffnen Sie zunächst die datei Program.fs, die Sie zuvor mit der .NET CLI erstellt haben. Sie werden feststellen, dass bereits Code vorhanden ist.
Erstellen Sie als Nächstes ein neues module
namens PigLatin
, und kopieren Sie die zuvor erstellte toPigLatin
-Funktion in das Modul:
module PigLatin =
let toPigLatin (word: string) =
let isVowel (c: char) =
match c with
| 'a' | 'e' | 'i' | 'o' | 'u'
| 'A' | 'E' | 'I' | 'O' | 'U' -> true
|_ -> false
if isVowel word[0] then
word + "yay"
else
word[1..] + string word[0] + "ay"
Dieses Modul sollte über der main
-Funktion und unterhalb der open System
-Deklaration liegen. Die Reihenfolge der Deklarationen ist in F# wichtig. Daher müssen Sie die Funktion definieren, bevor Sie sie in einer Datei aufrufen.
Rufen Sie nun in der main
-Funktion Ihre Pig Latin-Generatorfunktion für die folgenden Argumente auf:
[<EntryPoint>]
let main args =
for arg in args do
let newArg = PigLatin.toPigLatin arg
printfn "%s in Pig Latin is: %s" arg newArg
0
Jetzt können Sie Ihre Konsolen-App über die Befehlszeile ausführen:
dotnet run apple banana
Und Sie werden sehen, dass es dasselbe Ergebnis wie Ihre Skriptdatei ausgibt, aber diesmal als laufendes Programm!
Problembehandlung für Ionide
Hier sind einige Möglichkeiten, wie Sie bestimmte Probleme beheben können, die möglicherweise auftreten:
- Um die Codebearbeitungsfeatures von Ionide abzurufen, müssen Ihre F#-Dateien auf dem Datenträger und in einem Ordner gespeichert werden, der im Visual Studio Code-Arbeitsbereich geöffnet ist.
- Wenn Sie Änderungen an Ihrem System vorgenommen oder Voraussetzungen für Ionide installiert haben, während Visual Studio Code geöffnet war, starten Sie Visual Studio Code neu.
- Wenn In Ihren Projektverzeichnissen ungültige Zeichen vorhanden sind, funktioniert Ionide möglicherweise nicht. Benennen Sie Ihre Projektverzeichnisse um, wenn dies der Fall ist.
- Wenn keiner der Ionide-Befehle funktioniert, überprüfen Sie Ihre Visual Studio Code-Schlüsselbindungen, um festzustellen, ob Sie sie versehentlich überschreiben.
- Wenn Ionide auf Ihrem Rechner nicht funktioniert und keine der oben genannten Lösungen Ihr Problem behoben hat, versuchen Sie, das Verzeichnis
ionide-fsharp
auf Ihrem Rechner zu entfernen und die Plugin-Suite neu zu installieren. - Wenn ein Projekt nicht geladen werden konnte (der F#-Projektmappen-Explorer zeigt dies), klicken Sie mit der rechten Maustaste auf dieses Projekt, und klicken Sie auf Details anzeigen, um weitere Diagnoseinformationen zu erhalten.
Ionide ist ein Open-Source-Projekt, das von Mitgliedern der F#-Community erstellt und verwaltet wird. Im GitHub-Repository ionide-vscode-fsharp können Sie Probleme melden oder Beiträge beisteuern.
Sie können auch weitere Hilfe von den Ionide-Entwicklern und der F#-Community im Ionide Gitter Kanalanfordern.
Nächste Schritte
Weitere Informationen zu F# und den Features der Sprache finden Sie unter Tour of F#.