Aan de slag met F# in Visual Studio voor Mac
Belangrijk
Microsoft heeft de buitengebruikstelling van Visual Studio voor Mac aangekondigd. Visual Studio voor Mac wordt vanaf 31 augustus 2024 niet meer ondersteund. Alternatieven zijn:
- Visual Studio Code met de C# Dev Kit en gerelateerde extensies, zoals .NET MAUI en Unity.
- Visual Studio die wordt uitgevoerd op Windows op een VIRTUELE machine op mac.
- Visual Studio die wordt uitgevoerd op Windows op een virtuele machine in de cloud.
Zie Visual Studio voor Mac aankondiging van buitengebruikstelling voor meer informatie.
F# wordt ondersteund in de Visual Studio voor Mac IDE. Zorg ervoor dat u Visual Studio voor Mac geïnstalleerd.
Een consoletoepassing maken
Een van de meest eenvoudige projecten in Visual Studio voor Mac is de consoletoepassing. U kunt dit als volgt doen. Zodra Visual Studio voor Mac is geopend:
Wijs in het menu Bestand de optie Nieuwe oplossing aan.
In het dialoogvenster Nieuw project zijn er twee verschillende sjablonen voor consoletoepassing. Er is een onder Overig -> .NET die is gericht op .NET Framework. De andere sjabloon bevindt zich onder .NET Core -> App die is gericht op .NET Core. Beide sjablonen moeten voor het doel van dit artikel werken.
Wijzig C# indien nodig in F# onder console-app. Kies de knop Volgende om vooruit te gaan.
Geef uw project een naam en kies de gewenste opties voor de app. U ziet dat in het voorbeeldvenster aan de zijkant van het scherm de mapstructuur wordt weergegeven die wordt gemaakt op basis van de geselecteerde opties.
Klik op Create. U ziet nu een F#-project in Solution Explorer.
Uw code schrijven
Laten we beginnen door eerst wat code te schrijven. Zorg ervoor dat het Program.fs
bestand is geopend en vervang de inhoud door het volgende:
module HelloSquare
let square x = x * x
[<EntryPoint>]
let main argv =
printfn "%d squared is: %d!" 12 (square 12)
0 // Return an integer exit code
In het vorige codevoorbeeld is een functie square
gedefinieerd die een benoemde x
invoer gebruikt en deze vermenigvuldigt met zichzelf. Omdat F# typedeductie gebruikt, hoeft het type x
niet te worden opgegeven. De F#-compiler begrijpt de typen waar vermenigvuldigen geldig is en wijst een type toe op basis van hoe square
wordt aangeroepenx
. Als u de muisaanwijzer boven square
plaatst, ziet u het volgende:
val square: x:int -> int
Dit wordt de typehandtekening van de functie genoemd. Dit kan als volgt worden gelezen: 'Vierkant is een functie die een geheel getal met de naam x gebruikt en een geheel getal produceert'. Houd er rekening mee dat de compiler het int
type voor nu heeft gegevensquare
. Dit komt doordat vermenigvuldigen niet algemeen is voor alle typen, maar in plaats daarvan algemeen is voor een gesloten set typen. De F#-compiler heeft op dit moment gekozen int
, maar hiermee wordt de typehandtekening aangepast als u een ander invoertype aanroept square
, zoals een float
.
Een andere functie, main
wordt gedefinieerd, die is ingericht met het EntryPoint
kenmerk om de F#-compiler te vertellen dat de uitvoering van het programma daar moet beginnen. Het volgt dezelfde conventie als andere programmeertalen in C-stijl, waarbij opdrachtregelargumenten aan deze functie kunnen worden doorgegeven en een geheel getalcode wordt geretourneerd (meestal 0
).
Het is in deze functie dat we de square
functie aanroepen met een argument van 12
. De F#-compiler wijst vervolgens het type toe square
dat moet worden int -> int
(dat wil gezegd, een functie die een int
functie neemt en een int
produceert). De aanroep is printfn
een opgemaakte afdrukfunctie die gebruikmaakt van een notatietekenreeks, vergelijkbaar met programmeertalen in C-stijl, parameters die overeenkomen met de parameters die zijn opgegeven in de notatietekenreeks en vervolgens het resultaat en een nieuwe regel afdrukken.
Uw code uitvoeren
U kunt de code uitvoeren en resultaten bekijken door te klikken op Uitvoeren in het menu op het hoogste niveau en vervolgens starten zonder foutopsporing. Hiermee wordt het programma uitgevoerd zonder foutopsporing en kunt u de resultaten bekijken.
U ziet nu het volgende weergegeven in het consolevenster dat Visual Studio voor Mac weergegeven:
12 squared is 144!
Gefeliciteerd U hebt uw eerste F#-project gemaakt in Visual Studio voor Mac, een F#-functie geschreven om de resultaten van het aanroepen van die functie af te drukken en het project uit te voeren om enkele resultaten te zien.
F# Interactive gebruiken
Een van de beste functies van F#-hulpprogramma's in Visual Studio voor Mac is het interactieve F#-venster. Hiermee kunt u code verzenden naar een proces waar u die code kunt aanroepen en het resultaat interactief kunt zien.
Als u deze wilt gebruiken, markeert u de square
functie die in uw code is gedefinieerd. Klik vervolgens op Bewerken in het menu op het hoogste niveau. Selecteer vervolgens De selectie Verzenden naar F# Interactive. Hiermee wordt de code uitgevoerd in het interactieve F#-venster. U kunt ook met de rechtermuisknop op de selectie klikken en de optie Selectie verzenden naar F# Interactive kiezen. U ziet dat het interactieve F#-venster wordt weergegeven met het volgende:
>
val square: x: int -> int
>
Hier ziet u dezelfde functiehandtekening voor de square
functie, die u eerder hebt gezien toen u de muisaanwijzer over de functie aanwijsde. Omdat square
dit nu is gedefinieerd in het interactieve F#-proces, kunt u het aanroepen met verschillende waarden:
> square 12;;
val it: int = 144
> square 13;;
val it: int = 169
Hiermee wordt de functie uitgevoerd, wordt het resultaat gekoppeld aan een nieuwe naam it
en wordt het type en de waarde van it
. Houd er rekening mee dat u elke regel met ;;
. Zo weet F# Interactive wanneer uw functie-aanroep is voltooid. U kunt ook nieuwe functies definiëren in F# Interactive:
> let isOdd x = x % 2 <> 0;;
val isOdd: x: int -> bool
> isOdd 12;;
val it: bool = false
In het bovenstaande wordt een nieuwe functie gedefinieerd, isOdd
die een int
en controleert of deze oneven is. U kunt deze functie aanroepen om te zien wat deze retourneert met verschillende invoerwaarden. U kunt functies aanroepen binnen functieoproepen:
> isOdd (square 15);;
val it: bool = true
U kunt ook de operator pipe-forward gebruiken om de waarde in de twee functies te pijplijnen:
> 15 |> square |> isOdd;;
val it: bool = true
De operator pipe-forward, en meer, worden behandeld in latere zelfstudies.
Dit is slechts een kijkje in wat u kunt doen met F# Interactive. Zie Interactive Programming met F# voor meer informatie.
Volgende stappen
Als u dat nog niet hebt gedaan, bekijkt u de Tour of F#, waarin enkele van de kernfuncties van F# worden behandeld. U krijgt een overzicht van enkele van de mogelijkheden van F# en biedt voldoende codevoorbeelden die u kunt kopiëren naar Visual Studio voor Mac en kunt uitvoeren. Er zijn ook enkele geweldige externe resources die u kunt gebruiken, die worden weergegeven in de F#-handleiding.
Zie ook
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor