Scala Cheatsheet
Scala Cheatsheet
Language
Podziękowania dla Brendan O’Connor. Ten cheatsheet ma być szybkim podsumowaniem konstrukcji składniowych Scali. Licencjonowany przez Brendan O’Connor pod licencją CC-BY-SA 3.0.
| zmienne | |
Dobrze |
Zmienna. |
Źle |
Stała. |
|
Zmienna z podanym typem. |
| funkcje | |
DobrzeŹle |
Definiowanie funkcji. Ukryty błąd: bez znaku = jest procedurą zwracającą Unit; powoduje to chaos. Przestarzałe w Scali 2.13. |
DobrzeŹle |
Definiowanie funkcji. Błąd składni: wymagane są typy dla każdego argumentu. |
|
Alias typu. |
vs. |
Wywoływanie przez wartość. Wywoływanie przez nazwę (parametr leniwy). |
|
Funkcja anonimowa. |
vs. |
Funkcja anonimowa: podkreślenie to argument pozycyjny. |
|
Funkcja anonimowa: aby użyć argumentu dwa razy, musisz go nazwać |
DobrzeŹle |
Funkcja anonimowa: związana metoda infiksowa. Możesz użyć także 2 * _. |
|
Funkcja anonimowa: z bloku zwracane jest ostatnie wyrażenie. |
|
Funkcja anonimowa: styl potokowy. |
|
Funkcja anonimowa: aby przekazać kilka bloków musisz użyć nawiasów. |
|
Rozwijanie funkcji, oczywista składnia. |
|
Rozwijanie funkcji, oczywista składnia |
|
Rozwijanie funkcji, lukier składniowy, ale wtedy: |
|
Potrzeba podążającego podkreślenia, aby wydobyć funkcję częściowo zaaplikowaną, tylko przy wersji z lukrem składniowym. |
|
Typ generyczny. |
|
Lukier składniowy dla operatorów infiksowych. |
|
Zmienna liczba argumentów. |
| pakiety | |
|
Import wszystkiego z pakietu. |
|
Import selektywny. |
|
Import ze zmianą nazwy. |
|
Importowanie wszystkiego z java.util poza Date. |
Na początku pliku: Definiowanie pakietu według zakresu: Singleton dla pakietu: |
Deklaracja pakietu. |
| struktury danych | |
|
Literał krotki (Tuple3). |
|
Przypisanie z podziałem: rozpakowywanie krotki przy pomocy dopasowywania wzorca. |
Źle |
Ukryty błąd: do każdego przypisana cała krotka. |
|
Lista (niezmienna). |
|
Indeksowanie za pomocą nawiasów (slajdy). |
|
Operator dołożenia elementu na początek listy. |
to samo co: |
Składnia dla przedziałów. |
|
Jedyny obiekt typu Unit. Identyczny do void w C i Java. |
| konstrukcje kontrolne | |
|
Warunek. |
to samo co: |
Lukier składniowy dla warunku. |
|
Pętla while. |
|
Pętla do-while. |
|
Instrukcja przerwania pętli (slajdy). |
to samo co: |
Intrukcja for: filtrowanie/mapowanie. |
to samo co: |
Instrukcja for: przypisanie z podziałem. |
to samo co: |
Instrukcja for: iloczyn kartezjański. |
|
Instrukcja for: imperatywnie.sprintf style. |
|
Instrukcja for: iterowanie aż do górnej granicy włącznie. |
|
Instrukcja for: iterowanie poniżej górnej granicy. |
| pattern matching (dopasowywanie wzorca) | |
DobrzeŹle |
Używaj słowa kluczowego case w funkcjach w celu dopasowywania wzorca. |
Źle |
v42 jest interpretowane jako nazwa pasująca do każdej wartości typu Int, więc "42" zostaje wypisywane. |
Dobrze |
`v42` z grawisami jest interpretowane jako istniejąca wartośćv42, więc "Not 42" zostaje wypisywane. |
Dobrze |
UppercaseVal jest traktowane jako istniejąca wartość, nie jako zmienna wzorca, bo zaczyna się z wielkiej litery. W takim razie wartość przechowywana w UppercaseVal jest porównywana z 3, więc "Not 42" jest wypisywane. |
| obiektowość | |
|
Parametry konstruktora x - prywatne. |
|
Parametry konstruktora - publiczne. |
|
Konstruktor jest ciałem klasy. Deklaracja publicznego pola. Deklaracja publicznej stałej. Deklaracja pola prywatnego. Alternatywny konstruktor. |
|
Instancja klasy anonimowej. |
|
Defiicja klasy abstrakcyjnej (nie da się stworzyć obiektu tej klasy). |
|
Definicja klasy pochodnej. |
|
Dziedziczenie i parametry konstruktora (wishlist: domyślne, automatyczne przekazywanie parametrów). |
|
Definicja singletona (w stylu modułu). |
|
Cechy. Interface'y z implementacją. Bez parametrów konstruktora. Możliwość mixin'ów. |
|
Wiele cech. |
|
W przeciążeniach funkcji wymagane jest słowo kluczowe override. |
|
Tworzenie obiektu. |
ŹleDobrze |
Błąd typu: typ abstrakcyjny. Zamiast tego konwencja: wywoływalna fabryka przysłaniająca typ. |
|
Literał klasy. |
|
Sprawdzanie typu (w czasie wykonania). |
|
Rzutowanie typu (w czasie wykonania). |
|
Oznaczenie typu (w czasie kompilacji). |
| opcje | |
|
Tworzenie niepustej wartości opcjonalnej. |
|
Pojedyncza pusta wartość opcjonalna. |
ale
|
Fabryka wartości opcjonalnych null-safe. |
to samo co:
|
Jawny typ pustej wartości opcjonalnej Fabryka dla pustej wartości opcjonalnej. |
|
Styl potokowy (pipeline). |
|
Składnia instrukcji for. |
to samo co:
|
Zastosuj funkcję do wartości opcjonalnej. |
to samo co:
|
To samo co map, ale funkcja musi zwracać opcjonalną wartość. |
to samo co:
|
Wyodrębnij opcję zagnieżdżoną. |
to samo co:
|
Zastosuj procedurę na wartości opcjonalnej. |
to samo co:
|
Zastosuj funkcję do wartości opcjonalnej, zwróć wartość domyślną, jeśli pusta. |
to samo co:
|
Zastosuj częściowe dopasowanie do wzorca dla wartości opcjonalnej. |
to samo co:
|
true jeżeli nie jest puste. |
to samo co:
|
true jeżeli puste. |
to samo co:
|
true jeżeli nie jest puste. |
to samo co:
|
0 jeżeli puste, w przeciwnym razie 1. |
to samo co:
|
Oblicz i zwróć alternatywną wartość opcjonalną, jeżeli pierwotna wartość jest pusta. |
to samo co:
|
Oblicz i zwróć wartość domyślną, jeżeli pierwotna wartość jest pusta. |
to samo co:
|
Zwróć wartość, jeżeli pusta to rzuć wyjątek. |
to samo co:
|
Zwróć wartość, null jeżeli pusta. |
to samo co:
|
Wartość opcjonalna spełnia predyktat. |
to samo co:
|
Wartość opcjonalna nie spełnia predyktatu. |
to samo co:
|
Zastosuj predyktat na wartości lub false jeżeli pusta. |
to samo co:
|
Zastosuj predyktat na opcjonalnej wartości lub true jeżeli pusta. |
to samo co:
|
Sprawdź, czy wartość jest równa wartości opcjonalnej lub false jeżeli pusta. |
- English aHEYHEYHEY! ba
- Bosanski aHEYHEYHEY! fr
- Français aHEYHEYHEY! ja
- 日本語 aHEYHEYHEY! pl
- Polski aHEYHEYHEY! pt-br
- Português (Brasil) aHEYHEYHEY! zh-cn
- 中文 (简体) aHEYHEYHEY! th
- ภาษาไทย aHEYHEYHEY! ru
- Русский aHEYHEYHEY! uk
- Українська