Scala - typy danych
Scala ma te same typy danych, co Java, z takim samym zużyciem pamięci i precyzją. Poniżej znajduje się tabela zawierająca szczegółowe informacje o wszystkich typach danych dostępnych w Scali -
Sr.No | Typ i opis danych |
---|---|
1 | Byte 8-bitowa wartość ze znakiem. Zakres od -128 do 127 |
2 | Short 16-bitowa wartość ze znakiem. Zakres od -32768 do 32767 |
3 | Int 32-bitowa wartość ze znakiem. Zakres od -2147483648 do 2147483647 |
4 | Long 64-bitowa wartość ze znakiem. -9223372036854775808 do 9223372036854775807 |
5 | Float 32-bitowy zmiennoprzecinkowy IEEE 754 o pojedynczej precyzji |
6 | Double 64-bitowy zmiennoprzecinkowy IEEE 754 o podwójnej precyzji |
7 | Char 16-bitowy znak Unicode bez znaku. Zakres od U + 0000 do U + FFFF |
8 | String Sekwencja znaków |
9 | Boolean Albo literalna prawda, albo dosłowna fałsz |
10 | Unit Nie odpowiada żadnej wartości |
11 | Null zerowe lub puste odniesienie |
12 | Nothing Podtyp każdego innego typu; nie zawiera żadnych wartości |
13 | Any Nadtyp dowolnego typu; każdy obiekt jest typu Any |
14 | AnyRef Nadtyp dowolnego typu odwołania |
Wszystkie wymienione powyżej typy danych są obiektami. Nie ma typów prymitywnych, takich jak w Javie. Oznacza to, że możesz wywoływać metody na Int, Long itp.
Scala Basic Literals
Zasady stosowane przez Scala dla literałów są proste i intuicyjne. Ta sekcja wyjaśnia wszystkie podstawowe literały Scala.
Literały całkowe
Literały całkowite są zwykle typu Int lub typu Long, po którym następuje przyrostek L lub l. Oto kilka literałów całkowitych -
0
035
21
0xFFFFFFFF
0777L
Literał zmiennoprzecinkowy
Literały zmiennoprzecinkowe są typu Float, gdy następuje po nich sufiks typu zmiennoprzecinkowego F lub f, aw przeciwnym razie są typu Double. Oto kilka literałów zmiennoprzecinkowych -
0.0
1e30f
3.14159f
1.0e100
.1
Literały logiczne
Literały boolowskie true i false są członkami typu Boolean.
Literały symboli
Symbol literał „x” jest skrótem dla wyrażenia scala.Symbol("x"). Symbol to klasa przypadku, która jest zdefiniowana w następujący sposób.
package scala
final case class Symbol private (name: String) {
override def toString: String = "'" + name
}
Literały postaci
Literał znakowy to pojedynczy znak ujęty w cudzysłów. Znak jest albo drukowalnym znakiem Unicode, albo jest opisany za pomocą sekwencji ucieczki. Oto kilka literałów znaków -
'a'
'\u0041'
'\n'
'\t'
Literały strunowe
Literał łańcuchowy to sekwencja znaków w podwójnych cudzysłowach. Znaki są znakami Unicode drukowalnymi lub opisanymi sekwencjami ucieczki. Oto kilka literałów tekstowych -
"Hello,\nWorld!"
"This string contains a \" character."
Ciągi wieloliniowe
Wielowierszowy literał ciągu to sekwencja znaków ujęta w potrójne cudzysłowy "" "..." "". Sekwencja znaków jest dowolna, z tym wyjątkiem, że może zawierać trzy lub więcej następujących po sobie znaków cudzysłowu tylko na samym końcu.
Znaki nie muszą koniecznie nadawać się do druku; Dozwolone są również znaki nowej linii lub inne znaki sterujące. Oto wielowierszowy literał ciągu -
"""the present string
spans three
lines."""
Wartości zerowe
Wartość null jest typu scala.Nulli dzięki temu jest kompatybilny z każdym typem referencyjnym. Oznacza wartość odniesienia, która odnosi się do specjalnego obiektu „zerowego”.
Sekwencje ewakuacyjne
Następujące sekwencje ucieczki są rozpoznawane w literałach znakowych i łańcuchowych.
Sekwencje ewakuacyjne | Unicode | Opis |
---|---|---|
\b | \ u0008 | backspace BS |
\ t | \ u0009 | zaczep poziomy HT |
\ n | \ u000c | formfeed FF |
\fa | \ u000c | formfeed FF |
\ r | \ u000d | powrót karetki CR |
\ " | \ u0022 | cudzysłów " |
\ ' | \ u0027 | pojedynczy cytat. |
\\ | \ u005c | ukośnik wsteczny \ |
Znak z Unicode od 0 do 255 może być również reprezentowany przez ósemkową ucieczkę, tj. Odwrotny ukośnik „\”, po którym następuje sekwencja maksymalnie trzech znaków ósemkowych. Poniżej znajduje się przykład pokazujący kilka znaków sekwencji sterującej -
Przykład
object Test {
def main(args: Array[String]) {
println("Hello\tWorld\n\n" );
}
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
Wynik
Hello World