Az F# használatának első lépései a Visual Studio Code-ban
Az Ionide beépülő modullal az F#-ot a Visual Studio Code-ban is megírhatja, így nagyszerű platformfüggetlen, egyszerűsített integrált fejlesztési környezetet (IDE) érhet el az IntelliSense és a kód újrabontásával. Látogasson el Ionide.io , és tudjon meg többet a beépülő modulról.
Először győződjön meg arról, hogy megfelelően van telepítve az F# és az Ionide beépülő modul.
Az első projekt létrehozása az Ionide használatával
Új F#-projekt létrehozásához nyisson meg egy parancssort, és hozzon létre egy új projektet a .NET parancssori felülettel:
dotnet new console -lang "F#" -o FirstIonideProject
Miután elkészült, módosítsa a könyvtárat a projektre, és nyissa meg a Visual Studio Code-ot:
cd FirstIonideProject
code .
Miután a projekt betöltődött a Visual Studio Code-ban, az ablak bal oldalán meg kell jelennie az F# Megoldáskezelő panelnek. Ez azt jelenti, hogy az Ionide sikeresen betöltötte az imént létrehozott projektet. A szerkesztőben a jelen időpont előtt írhat kódot, de ha ez megtörténik, minden be van töltve.
Az első szkript írása
Miután konfigurálta a Visual Studio Code-ot a .NET Core-szkriptek használatára, lépjen a Visual Studio Code Explorer nézetére, és hozzon létre egy új fájlt. Nevezze el MyFirstScript.fsx néven.
Most adja hozzá a következő kódot:
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"
Ez a függvény átalakítja a szavakat a Pig Latin egyik formájává. A következő lépés a kiértékelése az F# Interactive (FSI) használatával.
Jelölje ki a teljes függvényt (11 sor hosszúnak kell lennie). Miután ki van emelve, tartsa lenyomva az Alt billentyűt, és nyomja le az Enter billentyűt. Megjelenik egy terminálablak a képernyő alján, és ennek a következőképpen kell kinéznie:
Ez három dolgot tett:
- Elindította az FSI-folyamatot.
- Elküldte a kiemelt kódot az FSI-folyamatnak.
- Az FSI-folyamat kiértékelte az elküldött kódot.
Mivel az elküldött függvény egy függvény volt, most már meghívhatja ezt a függvényt az FSI-vel! Az interaktív ablakban írja be a következőket:
toPigLatin "banana";;
A következő eredményt kell látnia:
val it: string = "ananabay"
Most próbáljuk ki a magánhangzót első betűként. Adja meg a következőket:
toPigLatin "apple";;
A következő eredményt kell látnia:
val it: string = "appleyay"
Úgy tűnik, hogy a függvény a várt módon működik. Gratulálunk, most írta meg az első F# függvényt a Visual Studio Code-ban, és kiértékelte az FSI-vel!
Feljegyzés
Mint bizonyára észrevette, az FSI vonalai a következővel ;;
végződnek: . Ennek az az oka, hogy az FSI lehetővé teszi több sor megadását. A ;;
végén tudatja az FSI-vel, hogy mikor fejeződött be a kód.
A kód ismertetése
Ha nem biztos abban, hogy a kód valójában mit csinál, íme egy lépésről lépésre.
Mint látható, egy függvény, toPigLatin
amely egy szót vesz bemenetként, és átalakítja azt a szó pig-latin ábrázolására. Ennek szabályai a következők:
Ha egy szó első karaktere magánhangzóval kezdődik, adja hozzá a "yay" szót a szó végéhez. Ha nem magánhangzóval kezdődik, helyezze az első karaktert a szó végére, és adja hozzá az "ay" karaktert.
Előfordulhat, hogy az FSI-ben a következőket észlelte:
val toPigLatin: word: string -> string
Ez azt állítja, hogy toPigLatin
ez egy függvény, amely bemenetként (úgynevezett word
) vesz résztstring
, és egy másikat string
ad vissza. Ezt nevezik a függvény típus-aláírásának, az F# alapvető elemének, amely az F#-kód megértésének kulcsa. Ezt akkor is megfigyelheti, ha a Visual Studio Code-ban a függvény fölé viszi az egérmutatót.
A függvény törzsében két különböző rész jelenik meg:
Egy belső függvény, az úgynevezett
isVowel
, amely meghatározza, hogy egy adott karakter (c
) magánhangzó-e, és ellenőrzi, hogy egyezik-e a megadott minták egyikével a Mintaegyeztetés segítségével:let isVowel (c: char) = match c with | 'a' | 'e' | 'i' | 'o' | 'u' | 'A' | 'E' | 'I' | 'O' | 'U' -> true |_ -> false
Olyan
if..then..else
kifejezés, amely ellenőrzi, hogy az első karakter magánhangzó-e, és a bemeneti karakterekből ad vissza értéket annak alapján, hogy az első karakter magánhangzó-e vagy sem:if isVowel word[0] then word + "yay" else word[1..] + string(word[0]) + "ay"
A folyamat toPigLatin
tehát a következő:
Ellenőrizze, hogy a bemeneti szó első karaktere magánhangzó-e. Ha igen, csatolja a "yay" szót a szó végéhez. Ellenkező esetben helyezze át az első karaktert a szó végére, és adja hozzá az "ay" karaktert.
Ezzel kapcsolatban még egy utolsó dolog látható: az F#-ban nincs explicit utasítás a függvényből való visszatérésre. Ennek az az oka, hogy az F# kifejezésalapú, és a függvény törzsében kiértékelt utolsó kifejezés határozza meg a függvény visszatérési értékét. Mivel if..then..else
maga egy kifejezés, a blokk törzsének then
vagy a blokk törzsének kiértékelése else
határozza meg a függvény által visszaadott toPigLatin
értéket.
A konzolalkalmazás átalakítása Pig Latin-generátorsá
A cikk előző szakaszai az F#-kód írásának gyakori első lépését mutatták be: egy kezdeti függvény írását és interaktív végrehajtását az FSI-vel. Ezt REPL-alapú fejlesztésnek nevezzük, ahol a REPL a "Read-Evaluate-Print Loop". Ez egy nagyszerű módja annak, hogy kísérletezzen a funkciókkal, amíg valami nem működik.
A REPL-alapú fejlesztés következő lépése a munkakód F#-implementációs fájlba való áthelyezése. Ezt követően az F#-fordító lefordíthatja egy végrehajtható szerelvénybe.
Először nyissa meg a korábban a .NET CLI-vel létrehozott Program.fs fájlt. Észre fogja venni, hogy néhány kód már benne van.
Ezután hozzon létre egy új module
hívott nevet PigLatin
, és másolja be a toPigLatin
korábban létrehozott függvényt a következő módon:
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"
Ennek a modulnak a függvény fölött és a main
open System
deklaráció alatt kell lennie. A deklarációk sorrendje az F#-ban számít, ezért a függvényt meg kell határoznia, mielőtt meghívja egy fájlban.
Most a függvényben hívja meg a main
Pig Latin generator függvényt az argumentumokon:
[<EntryPoint>]
let main args =
for arg in args do
let newArg = PigLatin.toPigLatin arg
printfn "%s in Pig Latin is: %s" arg newArg
0
Most már futtathatja a konzolalkalmazást a parancssorból:
dotnet run apple banana
És látni fogja, hogy ugyanazt az eredményt adja ki, mint a szkriptfájl, de ezúttal futó programként!
Az ionid hibaelhárítása
Az alábbiakban néhány módszert talál arra, hogy elhárítsa azokat a problémákat, amelyekbe esetleg belefuthat:
- Az Ionide kódszerkesztési funkcióinak lekéréséhez az F#-fájlokat lemezre és a Visual Studio Code-munkaterületen megnyitott mappába kell menteni.
- Ha módosította a rendszert, vagy telepítette az Ionide előfeltételeit a Visual Studio Code megnyitásával, indítsa újra a Visual Studio Code-ot.
- Ha a projektkönyvtárakban érvénytelen karakterek vannak, előfordulhat, hogy az Ionide nem működik. Ha ez a helyzet, nevezze át a projektkönyvtárakat.
- Ha az Ionide-parancsok egyike sem működik, ellenőrizze a Visual Studio Code kulcskötéseit , hogy véletlenül felülbírálja-e őket.
- Ha az Ionide meghibásodott a számítógépen, és a fentiek egyike sem javította a problémát, távolítsa el a könyvtárat a
ionide-fsharp
számítógépen, és telepítse újra a beépülő modulcsomagot. - Ha egy projekt betöltése nem sikerült (az F# Megoldáskezelő ezt jeleníti meg), kattintson a jobb gombbal a projektre, és a Részletek megtekintése parancsra kattintva további diagnosztikai információkat kaphat.
Az Ionide egy nyílt forráskódú projekt, amelyet az F# közösség tagjai építettek és tartanak karban. Jelentse a problémákat, és nyugodtan járuljon hozzá az ionide-vscode-fsharp GitHub-adattárhoz.
Az Ionide Gitter csatornán további segítséget is kérhet az Ionide-fejlesztőktől és az F#-közösségtől.
Következő lépések
Ha többet szeretne megtudni az F# nyelvről és a nyelv funkcióiról, tekintse meg az F#-bemutatót.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: