Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano, jak rozpocząć pracę z językiem F# w dowolnym systemie operacyjnym (Windows, macOS lub Linux) przy użyciu interfejsu wiersza polecenia platformy .NET. Przechodzi przez proces tworzenia rozwiązania wieloprojektowego z biblioteką klas wywoływaną przez aplikację konsolową.
Wymagania wstępne
Aby rozpocząć, musisz zainstalować najnowszy zestaw .NET SDK.
W tym artykule założono, że wiesz, jak używać wiersza polecenia i korzystać z preferowanego edytora tekstów. Jeśli jeszcze go nie używasz, program Visual Studio Code jest doskonałym rozwiązaniem jako edytor tekstów dla języka F#.
Tworzenie prostego rozwiązania wieloprojektowego
Otwórz wiersz polecenia/terminal i użyj polecenia dotnet new , aby utworzyć nowy plik rozwiązania o nazwie FSharpSample:
dotnet new sln -o FSharpSample
Po uruchomieniu poprzedniego polecenia zostanie utworzona następująca struktura katalogów:
FSharpSample
├── FSharpSample.sln
Pisanie biblioteki klas
Zmień katalogi na FSharpSample.
Użyj polecenia , dotnet new aby utworzyć projekt biblioteki klas w folderze src o nazwie Library.
dotnet new classlib -lang "F#" -o src/Library
Po uruchomieniu poprzedniego polecenia zostanie utworzona następująca struktura katalogów:
└── FSharpSample
├── FSharpSample.sln
└── src
└── Library
├── Library.fs
└── Library.fsproj
Zastąp zawartość Library.fs następującym kodem:
module Library
open System.Text.Json
let getJson value =
let json = JsonSerializer.Serialize(value)
value, json
Dodaj projekt Library do rozwiązania FSharpSample przy użyciu polecenia dotnet sln add. To polecenie dodaje projekt do pliku rozwiązania, aby rozwiązanie może go śledzić i skompilować:
dotnet sln add src/Library/Library.fsproj
Uruchom polecenie dotnet build , aby skompilować projekt. Nierozwiązane zależności zostaną przywrócone podczas kompilowania.
Pisanie aplikacji konsolowej, która korzysta z biblioteki klas
Użyj polecenia , dotnet new aby utworzyć aplikację konsolową w folderze src o nazwie App.
dotnet new console -lang "F#" -o src/App
Po uruchomieniu poprzedniego polecenia zostanie utworzona następująca struktura katalogów:
└── FSharpSample
├── FSharpSample.sln
└── src
├── App
│ ├── App.fsproj
│ ├── Program.fs
└── Library
├── Library.fs
└── Library.fsproj
Zastąp zawartość pliku Program.fs następującym kodem:
open System
open Library
[<EntryPoint>]
let main args =
printfn "Nice command-line arguments! Here's what System.Text.Json has to say about them:"
let value, json = getJson {| args=args; year=System.DateTime.Now.Year |}
printfn $"Input: %0A{value}"
printfn $"Output: %s{json}"
0 // return an integer exit code
Dodaj odwołanie do Library projektu przy użyciu polecenia dotnet reference add. To polecenie dodaje <ProjectReference> element do pliku App.fsproj, który informuje kompilator, że projekt Aplikacji zależy od projektu Biblioteka:
dotnet add src/App/App.fsproj reference src/Library/Library.fsproj
Poprzednie polecenie dodaje następujący kod XML do pliku App.fsproj:
<ItemGroup>
<ProjectReference Include="..\Library\Library.fsproj" />
</ItemGroup>
Wskazówka
Jeśli pominiesz ten krok i spróbujesz skompilować projekt Aplikacji, zostanie wyświetlony błąd kompilacji, ponieważ Library moduł nie zostanie znaleziony. W takim przypadku możesz uruchomić polecenie dotnet add reference lub ręcznie dodać element <ProjectReference> wskazany powyżej do pliku App.fsproj.
Dodaj App projekt do rozwiązania FSharpSample przy użyciu polecenia dotnet sln add.
dotnet sln add src/App/App.fsproj
Przywróć zależności NuGet za pomocą dotnet restore polecenia i uruchom polecenie dotnet build , aby skompilować projekt.
Zmień katalog na src/App projekt konsoli i uruchom projekt przekazujący Hello World jako argumenty:
cd src/App
dotnet run Hello World
Powinny zostać wyświetlone następujące wyniki:
Nice command-line arguments! Here's what System.Text.Json has to say about them:
Input: { args = [|"Hello"; "World"|] year = 2021 }
Output: {"args":["Hello","World"],"year":2021}
Następne kroki
Następnie zapoznaj się z przewodnikiem po języku F# , aby dowiedzieć się więcej o różnych funkcjach języka F#.