Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez a cikk bemutatja, hogyan kezdheti el az F# használatát bármely operációs rendszeren (Windows, macOS vagy Linux) a .NET CLI-vel. Egy többprojektű megoldás létrehozásával foglalkozik, amelyben egy konzolalkalmazás egy osztálykönyvtárat hív meg.
Előfeltételek
Először telepítenie kell a legújabb .NET SDK-t.
Ez a cikk feltételezi, hogy tudja, hogyan használhat parancssort, és rendelkezik előnyben részesített szövegszerkesztővel. Ha még nem használja, a Visual Studio Code nagyszerű lehetőség az F# szövegszerkesztőjeként.
Egyszerű többprojektes megoldás létrehozása
Nyisson meg egy parancssort/terminált, és a dotnet új parancsával hozzon létre egy új, a következő nevű FSharpSamplemegoldásfájlt:
dotnet new sln -o FSharpSample
Az előző parancs futtatása után a következő könyvtárstruktúra jön létre:
FSharpSample
├── FSharpSample.sln
Osztálytár írása
Módosítsa a könyvtárakat FSharpSample-ra.
dotnet new A parancs használatával hozzon létre egy osztálytárprojektet a Könyvtár nevű src mappában.
dotnet new classlib -lang "F#" -o src/Library
Az előző parancs futtatása után a következő könyvtárstruktúra jön létre:
└── FSharpSample
├── FSharpSample.sln
└── src
└── Library
├── Library.fs
└── Library.fsproj
Cserélje le a Library.fs tartalmát a következő kódra:
module Library
open System.Text.Json
let getJson value =
let json = JsonSerializer.Serialize(value)
value, json
Adja hozzá a Library projektet a FSharpSample megoldáshoz a dotnet sln add paranccsal. Ez a parancs hozzáadja a projektet a megoldásfájlhoz, hogy a megoldás nyomon tudja követni és felépítse:
dotnet sln add src/Library/Library.fsproj
Futtassa dotnet build a projekt felépítéséhez. A feloldatlan függőségek az összeállításkor lesznek visszaállítva.
Az osztálytárat használó konzolalkalmazás írása
dotnet new A paranccsal hozzon létre egy konzolalkalmazást az App nevű src mappában.
dotnet new console -lang "F#" -o src/App
Az előző parancs futtatása után a következő könyvtárstruktúra jön létre:
└── FSharpSample
├── FSharpSample.sln
└── src
├── App
│ ├── App.fsproj
│ ├── Program.fs
└── Library
├── Library.fs
└── Library.fsproj
Cserélje le a Program.fs fájl tartalmát a következő kódra:
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
Adjon hozzá egy hivatkozást a Library projekthez a dotnet reference add parancs használatával. Ez a parancs hozzáad egy <ProjectReference> elemet az App.fsproj fájlhoz, amely közli a fordítóval, hogy az alkalmazásprojekt az Erőforrástár projekttől függ:
dotnet add src/App/App.fsproj reference src/Library/Library.fsproj
Az előző parancs hozzáadja a következő XML-t az App.fsproj fájlhoz:
<ItemGroup>
<ProjectReference Include="..\Library\Library.fsproj" />
</ItemGroup>
Jótanács
Ha kihagyja ezt a lépést, és megpróbálja létrehozni az alkalmazásprojektet, fordítási hibát fog kapni, mert a Library modul nem található. Ha ez történik, futtathatja a dotnet add reference parancsot, vagy manuálisan hozzáadhatja a <ProjectReference> fent látható elemet az App.fsproj fájlhoz.
Adja hozzá a App projektet a FSharpSample megoldáshoz a dotnet sln add következő paranccsal:
dotnet sln add src/App/App.fsproj
A NuGet-függőségek visszaállításához használja a dotnet restore parancsot, majd a dotnet build parancs futtatásával építse fel a projektet.
Módosítsa a könyvtárat a src/App konzolprojektre, és futtassa az argumentumként átadott Hello World projektet:
cd src/App
dotnet run Hello World
A következő eredményeket kell látnia:
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}
Következő lépések
A következő lépésben tekintse meg az F# bemutatóját a különböző F# funkciókkal kapcsolatos további információkért.