Co to jest zrozumienie w Scali w Ubuntu 20.04
Format (wyliczających) podaje „e” w zrozumieniu, w których wyliczające są listą wyliczających oddzielone przez półkolony. Generator, który dodaje nowe zmienne, jest wyliczką, a filtr jest wyliczonym. Każde wiązanie utworzone przez wyliczające są oceniane przez rozumienie, które następnie wyświetla sekwencję wartości dla każdej wartości.
Składnia komponentu w Scala
Kierowani tym definicje do pojęć definicji, filtrów i generatorów do zrozumienia. Scala For-Compreension obejmuje następujące trzy wyrażenia:
Generatory
Generatory są jak iteratory, które iterują wszystkie elementy. Oto dwa inne fakty dotyczące generatorów: (1) Generator jest pierwszym krokiem w każdym zrozumieniu, (2) do zrozumienia używanych jest wiele generatorów.
Filtry
Filtry przybierają formę logicznych warunków w obliczu kompetencji. Filtr służy jako strażnik, zapobiegając użyciu wszystkich wartości, które naruszają warunek logiczny. Każda zmienna, która jest dostępna wewnątrz zakresu na kompresję, może być użyta do budowy niestandardowego warunku logicznego w filtrze.
Definicje
Definicja jest czymś, czego używamy do dokładnego wyjaśnienia tego, czego pragniemy osiągnąć lub zrobić. Na przykład możemy uwzględnić wszystkie operacje, które chcemy wykonać w części definiującej.
Przykład 1: Korzystanie z kompetencji z wydajnością
Aby zbudować nową kolekcję z istniejącej kolekcji, połącz pętlę, algorytm i instrukcję wydajności. For-Sompension to zastosowanie pętli z oświadczeniem o plonach. Umieść pracę w bloku po słowach kluczowych, jeśli Twoje podejście wymaga wielu wierszy kodu:
Stworzyliśmy obiekt jako „demo1”, w którym mamy definicję głównej funkcji. Wewnątrz skonstruowaliśmy klasę sprawy „podmiot”. Klasa ma dwa atrybuty: „Nazwa” ustawiona na typ ciągu i „artykuł” przypisany do typu „int”. Następnie zadeklarowaliśmy zmienną „bazę podmiotu”, która ma reprezentację listy. Lista jest inicjowana odpowiednio z nazwą trzech przedmiotów i numerów artykułów.
Następnie zdefiniowaliśmy generator, definicję i filtrując wewnątrz kompresji, który jest ustawiony w zmiennej „morethanten”. W ramach kompensacji „podmiot” przetrwał każdy element w „bazie podmiotu”. Następnie mamy instrukcję „If”, która wskazuje filtr tutaj. Stwierdzenie „jeśli”, które ma „temat.Artykuł> = 10 && Temat.artykuł< 20 ” condition means that the article that doesn't seem to be between 10 and 20 is filtered away.
Poniżej kompresji wykorzystaliśmy słowo kluczowe „wydajności”, które dodaje temat.nazwa. Od przedmiotu.Nazwa to ciąg, operator plonów zbiera wynik jako lista [ciąg].
W wyjściu można wizualizować listę nazw tematu wygenerowanych jako większa niż artykuł nr 10 i mniej niż numer 20.
Przykład 2: Korzystanie z pomylania bez wydajności w Scala
Możemy pominąć wydajność ze zrozumieniem. Kiedy tak się dzieje, zrozumienie oddaje jednostkę. Jeśli chcemy wykonać skutki uboczne, może to być przydatne. Oto podobny program, który nie wykorzystuje wydajności:
Rozpoczęliśmy obiekt programu jako „Demo2”. W tym mamy główną definicję metody. Zgodnie z główną metodą mamy inną definicję funkcji. Funkcja jest zdefiniowana jako „weryfikacja”, która przyjmuje zmienną „x” jako wejście i ustawia ją z typem int. Przypisaliśmy się do tej funkcji. For-Sompension ma generator i filtr. Generator ma iterację przez I i J.
Następnie przeprowadza się tutaj warunek „i*j> = x”, jeśli warunek jest pilnowany jako filtr. Jak przydzielliśmy wartość zmiennej „x” jako „5”. W początkowej iteracji oba i J są zerowe. Dlatego i * j nie jest większe niż x, a w ten sposób nic nie jest udzielane. Zanim zostanę podniesiony do 1, J jest zwiększany o trzy razy. Zarówno wartości I i J na każdej iteracji, aż warunek zostanie spełniony i są wydrukowane metodą println.
Kompilator Scala po kompilacji daje następujące wyniki:
Przykład 3: Korzystanie z kompensacji z dwoma generatorami w Scala
Oto kolejna instancja, w której stosujemy dwa generatory w „położonym”, ale ze słowem kluczowym plonu.
W tym przykładzie mamy definicję funkcji „produkt”, który został opracowany do obliczenia wszystkich par liczb od 0 do X-1, których produkt pasuje do określonej wartości y. Mamy dwa generatory, I i J, które rosną o 1, aż X, jak wskazano w kompresji. Następnie używamy filtra w razie potrzeby. Iternujemy listę z każdą pętlą i niszczymy każdy członek jako (i, j). Następnie wypisz pary.
Utworzyliśmy również listę, którą metoda zwróciła bez żadnych filtrów, aby pokazać etapy, które generatory I i J przyjmują. Wyniki pokazują, że chociaż jeden z generatorów wzrasta o N-1, pozostałe pozostaje ustalone. Drugi generator wzrasta o 1, gdy pierwszy osiąga N-1.
Możesz zobaczyć dane wyjściowe listy wygenerowanej z filtrem i bez filtra w kompresji w następujący sposób:
Wniosek
Różne możliwości i funkcjonalność zrozumienia Scala zostały w ten sposób uświadomionym nam za pomocą wyżej wymienionego artykułu. Za pomocą wielu przykładów zademonstrowaliśmy różne zalety korzystania ze zrozumienia Scala w modelu programowania Scala. Następnie dowiedzieliśmy się o wielu możliwościach i o tym, jak działa wydajność. W rezultacie będziemy mogli teraz utworzyć kod, jednocześnie za pomocą Scala rozumie.