Začínáme s nástrojem F# v Visual Studio pro MacGet started with F# in Visual Studio for Mac

F#a vizuální F# nástroje jsou podporovány v Visual Studio pro Mac integrovaném vývojovém prostředí.F# and the Visual F# tooling are supported in the Visual Studio for Mac IDE. Ujistěte se, že máte nainstalovanou Visual Studio pro Mac.Ensure that you have Visual Studio for Mac installed.

Vytvoření konzolové aplikaceCreating a console application

Jedním z nejvíce základních projektů v Visual Studio pro Mac je Konzolová aplikace.One of the most basic projects in Visual Studio for Mac is the Console Application. Tady je postup, jak to provést.Here's how to do it. Jakmile Visual Studio pro Mac otevřete:Once Visual Studio for Mac is open:

  1. V nabídce soubor přejděte na příkaz nové řešení.On the File menu, point to New Solution.

  2. V dialogovém okně Nový projekt existují 2 různé šablony pro konzolovou aplikaci.In the New Project dialog, there are 2 different templates for Console Application. Existuje jeden pod > .NET, který cílí na .NET Framework.There is one under Other -> .NET which targets the .NET Framework. Druhá šablona je v rámci aplikace .NET Core->, která cílí na .NET Core.The other template is under .NET Core -> App which targets .NET Core. Každá šablona by měla fungovat pro účely tohoto článku.Either template should work for the purpose of this article.

  3. V části Konzolová aplikace C# v F# případě potřeby změňte na.Under console app, change C# to F# if needed. Kliknutím na tlačítko Další přesunete vpřed.Choose the Next button to move forward!

  4. Zadejte název vašeho projektu a vyberte požadované možnosti pro aplikaci.Give your project a name, and choose the options you want for the app. Všimněte si, že podokno náhledu na stranu obrazovky, ve kterém se zobrazí struktura adresáře, která bude vytvořena na základě vybraných možností.Notice, the preview pane to the side of the screen that will show the directory structure that will be created based on the options selected.

  5. Klikněte na vytvořit.Click Create. V Průzkumník řešení by se teď F# měl zobrazit projekt.You should now see an F# project in the Solution Explorer.

Psaní kóduWriting your code

Pojďme začít vytvořením kódu jako prvního.Let's get started by writing some code first. Ujistěte se, že je soubor Program.fs otevřený, a pak jeho obsah nahraďte následujícím:Make sure that the Program.fs file is open, and then replace its contents with the following:

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

V předchozím příkladu kódu byla definována funkce square, která přebírá vstup s názvem x a vynásobí jej sebou samým.In the previous code sample, a function square has been defined which takes an input named x and multiplies it by itself. Vzhledem F# k tomu, že používá odvození typu, není nutné zadat typ x.Because F# uses Type Inference, the type of x doesn't need to be specified. F# Kompilátor rozumí typům, kde je násobení platné, a přiřadí typ k x na základě toho, jak je volána square.The F# compiler understands the types where multiplication is valid, and will assign a type to x based on how square is called. Pokud najedete myší na square, měli byste vidět následující:If you hover over square, you should see the following:

val square: x:int -> int

Jedná se o to, co se říká signatura typu funkce.This is what is known as the function's type signature. Dá se číst takto: "čtvercem je funkce, která přebírá celé číslo s názvem x a vytváří celé číslo".It can be read like this: "Square is a function which takes an integer named x and produces an integer". Všimněte si, že kompilátor square typ int pro tuto skutečnost, protože násobení není obecné napříč všemi typy, ale spíše je obecné napříč uzavřenou sadou typů.Note that the compiler gave square the int type for now - this is because multiplication is not generic across all types, but rather is generic across a closed set of types. F# Kompilátor vybral int v tomto okamžiku, ale upraví signaturu typu, pokud voláte square s jiným typem vstupu, jako je například float.The F# compiler picked int at this point, but it will adjust the type signature if you call square with a different input type, such as a float.

Je definována jiná funkce, main, která je upravena pomocí atributu EntryPoint, aby informovala F# kompilátor, že by měl spustit program pro spuštění programu.Another function, main, is defined, which is decorated with the EntryPoint attribute to tell the F# compiler that program execution should start there. Řídí se stejnou konvencí jako jiné programovací jazyky ve stylu jazyka C, kde argumenty příkazového řádku lze předat této funkci a je vrácen celočíselný kód (obvykle 0).It follows the same convention as other C-style programming languages, where command-line arguments can be passed to this function, and an integer code is returned (typically 0).

Je v této funkci, která volá funkci square s argumentem 12.It is in this function that we call the square function with an argument of 12. F# Kompilátor potom přiřadí typ square, který se má int -> int (to znamená funkce, která přijímá int a vytvoří int).The F# compiler then assigns the type of square to be int -> int (that is, a function which takes an int and produces an int). Volání printfn je naformátovaná funkce pro tisk, která používá formátovací řetězec, podobně jako programovací jazyky ve stylu jazyka C, parametry, které odpovídají těm, které jsou zadány ve formátu řetězce, a pak vypíše výsledek a nový řádek.The call to printfn is a formatted printing function which uses a format string, similar to C-style programming languages, parameters which correspond to those specified in the format string, and then prints the result and a new line.

Spuštění kóduRunning your code

Můžete spustit kód a zobrazit výsledky kliknutím na Spustit v nabídce nejvyšší úrovně a pak Spustit bez ladění.You can run the code and see results by clicking on Run from the top level menu and then Start Without Debugging. Tím se spustí program bez ladění a umožní vám zobrazit výsledky.This will run the program without debugging and allows you to see the results.

Nyní byste měli vidět následující vytištěné okno konzoly, které Visual Studio pro Mac odebráno:You should now see the following printed to the console window that Visual Studio for Mac popped up:

12 squared is 144!

Blahopřejeme!Congratulations! Vytvořili jste svůj první F# projekt v Visual Studio pro Mac, napsali jste F# funkci, která vytiskla výsledky volání funkce a spustí projekt, aby se zobrazily nějaké výsledky.You've created your first F# project in Visual Studio for Mac, written an F# function printed the results of calling that function, and run the project to see some results.

Pomocí F# InteractiveUsing F# Interactive

Jednou z nejlepších funkcí vizuálních F# nástrojů v Visual Studio pro Mac je F# interaktivní okno.One of the best features of the Visual F# tooling in Visual Studio for Mac is the F# Interactive Window. Umožňuje odeslat kód do procesu, kde můžete zavolat tento kód a interaktivně zobrazit výsledek.It allows you to send code over to a process where you can call that code and see the result interactively.

Pokud ho chcete začít používat, zvýrazněte square funkci definovanou v kódu.To begin using it, highlight the square function defined in your code. Potom v nabídce nejvyšší úrovně klikněte na Upravit .Next, click on Edit from the top level menu. V dalším kroku vyberte Odeslat F# výběr do interaktivního.Next select Send selection to F# Interactive. Tím se spustí kód v F# interaktivním okně.This executes the code in the F# Interactive Window. Případně můžete kliknout pravým tlačítkem na výběr a vybrat Odeslat výběr do F# interaktivní.Alternatively, you can right click on the selection and choose Send selection to F# Interactive. Mělo by se zobrazit F# interaktivní okno s následujícím:You should see the F# Interactive Window appear with the following in it:

>

val square : x:int -> int

>

Tím se zobrazí stejná signatura funkce funkce square, kterou jste viděli dříve při přechodu na funkci.This shows the same function signature for the square function, which you saw earlier when you hovered over the function. Vzhledem k tomu, že je nyní F# v interaktivním procesu definován square, můžete ji zavolat s různými hodnotami:Because square is now defined in the F# Interactive process, you can call it with different values:

> square 12;;
val it : int = 144
>square 13;;
val it : int = 169

Tím se spustí funkce, vytvoří se výsledek s novým názvem ita zobrazí typ a hodnotu it.This executes the function, binds the result to a new name it, and displays the type and value of it. Všimněte si, že je nutné ukončit každý řádek pomocí ;;.Note that you must terminate each line with ;;. To je způsob F# , jak interaktivní ví, kdy bylo volání funkce dokončeno.This is how F# Interactive knows when your function call is finished. Můžete také definovat nové funkce v F# Interactive:You can also define new functions in F# Interactive:

> let isOdd x = x % 2 <> 0;;

val isOdd : x:int -> bool

> isOdd 12;;
val it : bool = false

Výše uvedený příkaz definuje novou funkci isOdd, která přebírá int a kontroluje, jestli je liché.The above defines a new function, isOdd, which takes an int and checks to see if it's odd! Voláním této funkce můžete zjistit, co se vrátí s různými vstupy.You can call this function to see what it returns with different inputs. Můžete volat funkce v volání funkce:You can call functions within function calls:

> isOdd (square 15);;
val it : bool = true

K zřetězení hodnoty do dvou funkcí můžete použít také operátor předávání kanálu :You can also use the pipe-forward operator to pipeline the value into the two functions:

> 15 |> square |> isOdd;;
val it : bool = true

Operátor s přesměrováním na kanál a další jsou uvedené v dalších kurzech.The pipe-forward operator, and more, are covered in later tutorials.

To je jenom nakoukněte, co můžete dělat s F# interaktivními.This is only a glimpse into what you can do with F# Interactive. Pokud se chcete dozvědět víc, podívejte se na F#interaktivní programování pomocí .To learn more, check out Interactive Programming with F#.

Další krokyNext steps

Pokud jste to ještě neudělali, podívejte se na prohlídku F# , která se zabývá některými základními F# funkcemi daného jazyka.If you haven't already, check out the Tour of F#, which covers some of the core features of the F# language. Poskytne vám přehled některých možností F#nástroje a poskytne vám podrobné ukázky kódu, které můžete zkopírovat do Visual Studio pro Mac a spustit.It will give you an overview of some of the capabilities of F#, and provide ample code samples that you can copy into Visual Studio for Mac and run. K dispozici jsou také některé skvělé externí prostředky, které můžete použít v F# průvodci.There are also some great external resources you can use, showcased in the F# Guide.

Viz také:See also