Az F# használatának első lépései a Visual Studio Code-ban
Az F#-ot megírhatja a Visual Studio Code programban a Ionide bővítménnyel, így nagyszerű platformfüggetlen, egyszerűsített integrált fejlesztési környezetet (IDE) élvezhet, IntelliSense-támogatással és kódrefaktorálási lehetőségekkel. Látogasson el Ionide.io, és tudjon meg többet a beépülő modulról.
Jegyzet
Mielőtt hozzákezd, győződjön meg arról, hogy mindkettőt, a F#-t, és az Ionide beépülő modult, telepítette.
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, meg kell jelennie az F# Megoldáskezelő panelnek az ablak bal oldalán. 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.
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ít egy szót Pig Latinformá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 Enterbillentyű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, ezt a függvényt mostantól FSI-vel is meghívhatja! 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!
Jegyzet
Mint bizonyára észrevette, az FSI sorai ;;
végződnek. Ennek az az oka, hogy az FSI lehetővé teszi több sor megadását. A végén található ;;
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ó, toPigLatin
egy függvény, 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 a toPigLatin
egy függvény, amely egy string
bemenetként (az úgynevezett word
) vesz fel, és egy másik string
ad vissza. Ez ismert, mint afüggvény
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 Mintaegyeztetési:let isVowel (c: char) = match c with | 'a' | 'e' | 'i' | 'o' | 'u' | 'A' | 'E' | 'I' | 'O' | 'U' -> true |_ -> false
Egy
if..then..else
kifejezés, amely ellenőrzi, hogy az első karakter magánhangzó-e, és a bemeneti karakterekből létrehoz egy visszatérési értéket annak alapján, hogy az első karakter magánhangzó volt-e vagy sem:if isVowel word[0] then word + "yay" else word[1..] + string(word[0]) + "ay"
A toPigLatin
így folytatódik:
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 a kifejezés, a then
blokk törzsének vagy a else
blokk törzsének kiértékelése határozza meg a toPigLatin
függvény által visszaadott é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 REPL a "Read-Evaluate-Print Loop" (OlvasásiEvaluate-Print Hurok) kifejezést jelenti. 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. Ezután az F#-fordítóval le lehet fordítani egy végrehajtható összeállítássá.
Először nyissa meg a Program.fs fájlt, amelyet korábban a .NET CLI-vel hozott létre. Észre fogja venni, hogy néhány kód már benne van.
Ezután hozzon létre egy PigLatin
nevű új module
, és másolja a korábban létrehozott toPigLatin
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 main
függvény fölött, a 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 main
függvényben hívja meg a Pig Latin generátor 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 billentyűparancsait, hogy véletlenül felülírták-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
ionide-fsharp
könyvtárat a 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ő megjeleníti ezt), kattintson a jobb gombbal a projektre, és kattintson a Részletek megtekintése további diagnosztikai információkért.
Az Ionide egy nyílt forráskódú projekt, amelyet az F# közösség tagjai építettek és tartanak karban. Jelentsd a problémákat, és nyugodtan járulj hozzá az ionide-vscode-fsharp GitHub-tárházhoz.
További segítségért is fordulhat az Ionide fejlesztőihez és az F# közösséghez az Ionide Gitter csatornán.
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óját.