Nii nagu moemaailm jรคrgib trende, aastaaegu ja stiile, jรคrgib ka programmeerimismaailm tรคhelepanelikul uurimisel sarnast mustrit. Kodeerimisstiile, raamatukogude kasutamist ja funktsioonirakendusi vรตib vaadelda kui suundumusi ja kombinatsioone, mis loovad tรตhusaid, mitmekesiseid ja ilusaid kodeerimisparadigmasid. รks levinumaid probleeme, millega arendajad silmitsi vรตivad puutuda, mida kรคsitleme Haskellis, on faili olemasolu kontrollimine.
Haskell, keda austatakse oma ekspressiivse ja sisutiheda kodeerimisstiili poolest, on kรตrgetasemeline ja staatiliselt trรผkitud. Kuna selle รผks peamisi omadusi on tugev staatiline tippimine, tรคhendab see, et enamik levinumaid vigu leitakse kompileerimisetapis. Meie kรคes oleva probleemi vรตib jagada lihtsateks, kuid keerukateks sammudeks, mis on sarnased moevรตtete jaoks riietuse kokkupanemisega.
Moemaailmas on รผks esimesi samme riietuse kokkupanemisel kontrollida, kas teatud esemed on garderoobis saadaval. Samamoodi tuleb Haskellis enne sellega toimingute tegemist kontrollida, kas fail on teatud kataloogis olemas. Siin kasutame teeki System.Directory.
System.Directory teek pakub Haskelli funktsioonide komplekti kataloogide ja failidega tรถรถtamiseks. Faili olemasolu kontrollimiseks kasutame selles teegis funktsiooni 'doesFileExist':
import System.Directory doesFileExist "path/to/file"
Funktsiooni "doesFileExist" dekodeerimine
Funktsioon 'doesFileExist' kontrollib sarnaselt garderoobi hindava stilistiga, kas mรครคratud fail on antud teel olemas. Tagastab Boole'i โโvรครคrtuse โ "True", kui fail on olemas, ja "False", kui see pole olemas.
Koodiosa paremaks mรตistmiseks mรตelge sellele moeterminites: funktsioon "doesFileExist" on nagu stilist (koodifunktsioon), mis otsib konkreetset riidetรผkki (faili). Stilist kontrollib, kas rรตivas on garderoobis (teatud kataloogis). Kui see on olemas, nรคitab stilist positiivset vastust; kui see pole nii, teatab stilist selle puudumiseks.
Kood kujutab endast jรคrgmist:
- โImport System.Directoryโ on samavรครคrne stilisti kutsumisega.
- โdoesFileExistโ sรผmboliseerib stilisti รผlesannet, milleks on teada saada, kas konkreetne riideese on saadaval.
- โTee/failiโ tรคhistab garderoobi asukohta.
Funktsiooni 'doesFileExist' kasutamine
Funktsiooni โdoesFileExistโ kรคivitamine Haskellis sarnaneb moemรตistatuse pรผstitamisega โ kas garderoobis leiduvate tรผkkidega saab teatud vรคlimuse vรคlja tรตmmata? Sarnaselt leiab funktsioon, kas fail on olemas vรตi mitte.
Nรคiteks selleks, et teada saada, kas fail nimega "design.txt" asub kataloogis "/home/fashion/haskell", kasutatakse jรคrgmist koodi:
import System.Directory doesFileExist "/home/fashion/haskell/design.txt"
Kui fail "design.txt" on olemas, on vรคljund "True"; kui see nii ei ole, on vรคljund "False".
Kuigi protsess vรตib tunduda lihtne, on sรผsteemifailide kontrollimine รผlioluline. Moe vaatenurgast vaadatuna nรตuab รตmblusteta riietuse loomine, et kรตik rรตivaosad oleksid olemas ja seguneksid hรคsti, nagu hรคsti kirjutatud Haskelli koodirida. Nagu moes, viib pisidetailidele tรคhelepanu pรถรถramine Haskelli programmeerimisruumis tavaliselt eduka tulemuseni.
kokkuvรตte
Selle teema olemuse destilleerimiseks on Haskellis faili olemasolu kontrollimine analoogne selle kontrollimisega, kas teie garderoobis on teatud riietus. See toiming moodustab tulevaste toimingute alustala โ olgu selleks siis faili lugemine, tรถรถtlemine vรตi kustutamine. Teegi System.Directory funktsioon "doesFileExist" on selle รผlesande jaoks ideaalne tรถรถriist. Nii nagu pรผhendunud moestilist hoolitseb selle eest, et kollektsiooni iga tรผki eest oleks arvestatud, tagab asjatundlik Haskelli arendaja failide olemasolu enne edasiste toimingute tegemist.