Scala strømmer

Scala strømmer
Scala er å lette late operasjoner. Siden alle beregninger på disse samlingene er utsatt, er de ikke strengt definert. Vi vil utforske Scala -strømmer som er de unike typene lister i denne artikkelen på strømmer i Scala. Scala -samlingen som lagrer dataene inkluderer også Scala -strømmen. Den eneste forskjellen som skiller dette fra en liste i Scala er når det er nødvendig for skala når strømmenes verdier blir beregnet. Fordi de ikke laster inn dataene på en gang, er Scala -strømmer late lister som bare evaluerer verdiene etter behov. Dette forbedrer programytelsen.

Syntaks av strømmen i Scala i Ubuntu 20.04

Hovedforskjellen mellom en scala -strøm og en liste er at en strømnings elementer beregnes sakte i stedet for alle på en gang. Søknaden vår går raskere siden bare elementene som vi ber om er beregnet. Scalas strøm er imidlertid rask.

Val Stream = 1 #:: 2 #:: 3 #:: Stream.tømme

En strøm kan opprettes ved hjelp av #:: operatørtilnærming og strøm.tom på slutten av uttrykket i motsetning til en liste i Scala som kan opprettes med :: operatøren og strømmen.tømme. En strøm av tall gis som spesifikasjonen av strømmen. I dette tilfellet representerer 1 leder av strømmen. Mens 2 og 3 representerer halen på strømmen. Take -kommandoene som de i følgende kan brukes til å hente verdiene:

strøm.ta (verdi)

Eksempel 1: Opprette en strøm i Scala

Eksemplene for å lage en strøm i Scala er gitt i følgende illustrasjoner. Elementene i en strøm blir holdt etter å ha blitt vurdert.

Vi konstruerte objektet som "Stream1". Den inneholder hovedmetodedefinisjonen inne i blokken til hovedmetoden. Vi laget Scala Stream Code. For dette erklærte vi først "Val" nøkkelordvariabelen som "MyStream". Variabelen “MyStream” er satt med en strøm av tre tall. Vi brukte 2, 4 og 10 som heltall for strømmen. Her omtales 2 som hodet og de to neste heltallene, 4 og 10, blir referert til som halen på strømmen. Vi benyttet hashtaggen “#” og omfangsoppløsning “::” operatør mellom heltalene. Strømmen.tom brukes på slutten av strømmen. Deretter kalte vi "MyStream" -variabelen inne i Println -funksjonen for å skrive ut den spesifiserte strømmen.

Resultatene viser at den andre delen ikke ble vurdert. I dette tilfellet erstattes elementet med et spørsmålstegn. Listene blir ikke evaluert av Scala før de er påkrevd. Halen er ikke trykt, da den ennå ikke er beregnet. Strømmene er utpekt for lat beregning.

Eksempel 2: Opprette en strøm med strømmen.Ulemper i Scala

Strøm.Ulemper kan også brukes til å bygge en strøm. For å generere strømmer, bruk pakkeimporten “Scala.samling.Uforanderlig.Strøm.ulemper".

Vi nevnte Scala -pakken “Scala.samling.Uforanderlig.Bekker.Ulemper ”i vår toppseksjon. Etter det laget vi et objekt som "Stream2". Hovedmetodedefinisjonen er gitt for dette objektet. Vi opprettet variabelen “S” ved hjelp av "val" nøkkelordet. Vi tildelte strømmen [int] til variabelen “S”. Deretter kalte vi ulemper med strømmen. Hver ulemper med strømmen er vedlagt i den andre. Til slutt brukte vi strømmen.tom i siste ulemper. Deretter har vi Println -metoden for å skrive ut strømmen.Konselementer. Vi benyttet strenginterpolasjonen “$ S” for å skrive ut elementene i strømmen.

Den uforanderlige strømmen genereres i følgende utgangsskjermbilde. Bare hodeelementene i strømmen oppnås og halen blir ikke evaluert:

Eksempel 3: Bruke Take -funksjonen på strømmen i Scala

For å trekke ut elementene fra en strøm, bruk Take -funksjonen.

Vi etablerte objektet “Stream3” og utpekte hovedmetoden for det. Hovedmetoden inneholder variabel erklæringen og utskriftserklæringen som skal vises. Variabelen er her erklært som "ST" og initialisert med strømmen av tre oddetall. Strømmen er opprettet med operatøren “#::” og strømmen.tom på slutten av strømmen.

Etter opprettelsen av strømmen, viste vi den med utskriftsfunksjonen. Deretter tok vi de to første elementene fra den gitte strømmen ved å passere verdien “2” i ST.ta () metode. Deretter oppnådde vi de fem første elementene fra strømmen ved å passere “5” i Stream Take () -metoden.

Ved den første evalueringen av strømmen oppnås bare ett element. Etter å ha brukt strømmen tar kommandoen, hentet vi de to første elementene fra strømmen. Dessuten hentet vi de fem første elementene fra strømmen. Ettersom bare tre elementer er gitt til strømmen, så er det bare tre som får tilgang til i den siste utgangen. Legg merke til at ingen feil kastes.

Eksempel 4: Bruke kartet på strømmen i Scala

Vi bruker kartfunksjonen på en strøm i et Scala -program. Strømoperasjonene utføres ved hjelp av kartfunksjonen.

Vi har et objekt “Stream4” der programmets hoveddefinisjon kalles. Innenfor objektet “Stream4” hovedfunksjon, definerte vi en "strøm" -variabel. Her opprettet vi strømmen med "#::" -operatøren. Strømmen.tom brukes på slutten av strømuttrykket. Den opprettede strømmen skrives ut ved å sende "strømmen" -variabelen til Println -funksjonen. Deretter kalte vi kartfunksjonen i en annen println -funksjon. Vi forvandlet inngangsstrømmen med den nye strømmen ved hjelp av kartfunksjonen.

Den første oppnådde utgangen er dampen, og den neste er den nye kartstrømmen fra forrige strøm.

Eksempel 5: Initialisere en tom strøm i Scala

En tom strøm kan initialiseres ved hjelp av følgende kode:

Innenfor objektet “Stream5” klassifiserte vi hovedmetoden. I hovedmetoden opprettet vi variabelen “s_empty” og satte den tomme strømmen. Deretter viste vi den tomme strømmen ved å bruke Println -metoden og passerte "S_Empty" -variabelen til den.

Utgangen viser at strømmen er tom. Dessuten viser den den tomme strømmen, men kaster ikke noen form for unntak.

Konklusjon

Dette er en referansehåndbok for Scala Stream. Her har vi gått gjennom hvordan du lager strømningsfunksjonen i Scala ved å bruke passende programmeringseksempler. Vi beregnet ikke verdien av et element på en gang i Scala Stream, men heller en om gangen. Når ytelsen er et problem, bruk dette. Når det gjelder å skaffe seg et strømelement, bruker det den nyeste metoden. Siden bare en oppføring er beregnet om gangen, bruker Stream mindre minne enn listen.