ściągnij PDF
1) Wyjaśnij, czym jest Scala?
Scala to obiektowy język programowania funkcjonalnego i języka skryptowego dla ogólnych aplikacji programowych zaprojektowanych do wyrażania rozwiązań w zwięzły sposób.
2) Co to jest „zestaw Scala”? Jakie są metody, za pomocą których wyrażane są zestawy operacji?
Zestaw Scala to zbiór parowanych elementów tego samego typu. Zestaw Scala nie zawiera żadnych zduplikowanych elementów. Istnieją dwa rodzaje zbiorów, zmienne i niezmienne.
3) Co to jest „mapa Scala”?
Mapa Scala to zbiór par kluczy lub wartości. Na podstawie jego klucza można pobrać dowolną wartość. Wartości nie są unikalne, ale klucze są unikalne na mapie.
4) Jaka jest zaleta Scali?
- Funkcjonalny styl mniej podatny na błędy
- Wysoka łatwość konserwacji i produktywność
- Wysoka skalowalność
- Wysoka testowalność
- Zapewnia funkcje programowania współbieżnego
5) Pod jakim względem Scala jest lepsza od innych języków programowania?
- Tablice używają zwykłych typów ogólnych, podczas gdy w innych językach generyczne są przykręcane po namyśle i są całkowicie oddzielne, ale mają zachodzące na siebie zachowania z tablicami.
- Scala posiada niezmienne „val” jako pierwszorzędną cechę języka. Wartość „val” scala jest podobna do końcowych zmiennych Java. Zawartość może ulec zmianie, ale główne odniesienie jest niezmienne.
- Scala pozwala na zwrócenie wartości przez „bloki if”, „pętle for-yield” oraz „kod” w nawiasach. Jest to bardziej preferowane i eliminuje potrzebę stosowania oddzielnego operatora trójskładnikowego.
- Singleton ma obiekty singleton zamiast klasycznego statycznego języka C ++ / Java / C #. To czystsze rozwiązanie
- Trwałe niezmienne kolekcje są domyślne i wbudowane w bibliotekę standardową.
- Ma natywne krotki i zwięzły kod
- Nie ma kodu płyty kotła
6) Jakie są zmienne Scala?
Wartości i zmienne to dwa kształty dostępne w Scali. Zmienna wartości jest stała i po przypisaniu nie można jej zmienić. Jest niezmienna, natomiast zmienna zwykła jest zmienna i można zmienić jej wartość.
Są to dwa typy zmiennych
var myVar: Int = 0;
val myVal: Int = 1;
7) Wspomnij o różnicy między obiektem a klasą?
Klasa to definicja opisu. Definiuje typ pod względem metod i składu innych typów. Klasa to plan obiektu. Podczas gdy obiekt jest singletonem, instancją klasy, która jest unikalna. Dla każdego obiektu w kodzie tworzona jest klasa anonimowa, która dziedziczy z klas, które zadeklarowałeś jako obiekt do zaimplementowania.
8) Co to jest ogon rekurencyjny w łusce?
„Rekursja” to funkcja, która wywołuje samą siebie. Funkcja, która wywołuje samą siebie, na przykład funkcja „A” wywołuje funkcję „B”, która wywołuje funkcję „C”. Jest to technika często stosowana w programowaniu funkcjonalnym. Aby ogon był rekurencyjny, wywołanie zwrotne do funkcji musi być ostatnią funkcją do wykonania.
9) Co to jest „cecha łuski” w scali?
„Cechy” służą do definiowania typów obiektów określonych przez sygnaturę obsługiwanych metod. Scala pozwala na częściowe zaimplementowanie, ale cechy mogą nie mieć parametrów konstruktora. Cecha składa się z metody i definicji pola, łącząc je w klasy, można ją ponownie wykorzystać.
10) Kiedy możesz używać cech?
Nie ma określonej zasady, kiedy można używać cech, ale istnieje wskazówka, którą można wziąć pod uwagę.
- Jeśli zachowanie nie zostanie ponownie użyte, utwórz z niego konkretną klasę. W każdym razie nie jest to zachowanie wielokrotnego użytku.
- Aby dziedziczyć po nim w kodzie Java, można użyć klasy abstrakcyjnej.
- Jeśli priorytetem jest efektywność, skłoń się do korzystania z klasy
- Niech będzie cechą, jeśli może być ponownie wykorzystana w wielu niepowiązanych ze sobą klasach. W różnych częściach hierarchii klas tylko cechy mogą być mieszane w różne części.
- Możesz użyć klasy abstrakcyjnej, jeśli chcesz ją rozpowszechniać w postaci skompilowanej i oczekujesz, że zewnętrzne grupy będą pisać klasy dziedziczące po niej.
11) Co to są klasy przypadków?
Klasy Case zapewniają rekurencyjny mechanizm dekompozycji poprzez dopasowywanie wzorców, są to zwykłe klasy, które eksportują swój parametr konstruktora. Parametry konstruktora klas przypadków są dostępne bezpośrednio i są traktowane jako wartości publiczne.
12) Jaki jest pożytek z krotek w scali?
Krotki Scala łączą określoną liczbę elementów razem, dzięki czemu można je przekazywać w całości. Krotka jest niezmienna i może zawierać obiekty różnych typów, w przeciwieństwie do tablicy lub listy.
13) Co to jest funkcja curry w Scali?
Currying to technika przekształcania funkcji, która przyjmuje wiele argumentów, w funkcję, która przyjmuje pojedynczy argument. Scala obsługuje wiele technik stosowanych w językach, takich jak Haskell i LISP. Funkcja curry jest jedną z najrzadziej używanych i niezrozumianych.
14) Jakie są niejawne parametry w Scali?
Niejawny parametr to sposób, w jaki można „znaleźć” parametry metody. Jest podobny do parametrów domyślnych, ale ma inny mechanizm znajdowania wartości „domyślnej”. Niejawny parametr jest parametrem metody lub konstruktora, który jest oznaczony jako niejawny. Oznacza to, że jeśli wartość parametru nie jest wymieniona, kompilator wyszuka „niejawną” wartość zdefiniowaną w zakresie.
15) Co to jest zamknięcie w Scali?
Zamknięcie to funkcja, której wartość zwracana zależy od wartości zmiennych zadeklarowanych poza funkcją.
16) Co to jest Monada w Scali?
Monada to obiekt, który otacza inny przedmiot. Przekazujesz miniprogramy Monad, tj. Funkcje, aby wykonać manipulację danymi podstawowego obiektu, zamiast bezpośrednio manipulować obiektem. Monad wybiera sposób zastosowania programu do bazowego obiektu.
17) Co to jest funkcja anonimowa Scala?
W kodzie źródłowym funkcje anonimowe nazywane są „literałami funkcji”, a w czasie wykonywania literały funkcji są tworzone w obiektach zwanych wartościami funkcji. Scala zapewnia stosunkowo prostą składnię do definiowania funkcji anonimowych.
18) Wyjaśnić funkcje „wyższego rzędu Scala”?
Scala umożliwia definicję funkcji wyższego rzędu. Są to funkcje, które przyjmują inne funkcje jako parametry lub których wynikiem jest funkcja. W poniższym przykładzie funkcja apply () przyjmuje inną funkcję „f” i wartość „v” i stosuje funkcję do v.
Przykład:
object Test {def main(args: Array[String]) {println( apply( layout, 10) )}def apply(f: Int => String, v: Int) = f(v)def layout[A](x: A) = "[" + x.toString() + "]"Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik.
C:/>scalac Test.scalaC:/>scala Test[10]C:/>
19) Jaka jest różnica między zmienną a wartością?
W scali można zdefiniować zmienną za pomocą słów kluczowych a, val lub var. Różnica między val i var jest taka, że var jest bardzo podobne do deklaracji java, ale val jest trochę inny. Nie możemy zmienić odniesienia, aby wskazywał na inne odniesienie, gdy zmienna zostanie zadeklarowana przy użyciu wartości val. Zmienna zdefiniowana za pomocą słów kluczowych var jest zmienna i może być zmieniana dowolną liczbę razy.
20) Jakie są opcje, niektóre i żadne w scali?
„Opcja” jest typem ogólnym Scala, który może być wartością ogólną „jakąś” lub żadną. „Kolejka” często używa go do reprezentowania prymitywów, które mogą być zerowe.
21) Jak dołączyć do listy?
W scali, aby dołączyć do listy, użyj „
:+” single value
var myList = List.empty[String]myList :+= "a"myList :+= "b"myList :+= "c"use++ for appending a listvar myList = List.empty[String]myList ++= List("a", "b", "c")
22) Jak sformatować ciąg?
Aby sformatować ciąg, użyj metody .format (), w scali możesz użyć
Val formatted = „% s% i” .format (mystring.myInt)
23) Dlaczego scala woli niezmienność?
Scala preferuje niezmienność w projektowaniu iw wielu przypadkach używa jej jako domyślnej. Niezmienność może pomóc w rozwiązywaniu problemów równości lub równoległych programach.
24) Jakie są cztery typy identyfikatorów scala?
Cztery typy identyfikatorów to
- Identyfikatory alfanumeryczne
- Identyfikatory operatorów
- Mieszane identyfikatory
- Identyfikatory dosłowne
25) Jakie są różne typy literałów Scala?
Istnieją różne typy literałów w scali
- Literały całkowite
- Literały zmiennoprzecinkowe
- Literały logiczne
- Literały symboli
- Literały znakowe
- Literały ciągów
- Struny wieloliniowe