Scala - Types de données
Scala a tous les mêmes types de données que Java, avec la même empreinte mémoire et la même précision. Voici le tableau donnant des détails sur tous les types de données disponibles dans Scala -
Sr.Non | Type de données et description |
---|---|
1 | Byte Valeur signée 8 bits. Gamme de -128 à 127 |
2 | Short Valeur signée 16 bits. Gamme -32768 à 32767 |
3 | Int Valeur signée 32 bits. Plage -2147483648 à 2147483647 |
4 | Long Valeur signée 64 bits. -9223372036854775808 à 9223372036854775807 |
5 | Float Flotteur simple précision IEEE 754 32 bits |
6 | Double Flotteur double précision IEEE 754 64 bits |
sept | Char Caractère Unicode non signé 16 bits. Plage de U + 0000 à U + FFFF |
8 | String Une séquence de caractères |
9 | Boolean Soit le littéral vrai, soit le littéral faux |
dix | Unit Ne correspond à aucune valeur |
11 | Null référence nulle ou vide |
12 | Nothing Le sous-type de tous les autres types; n'inclut aucune valeur |
13 | Any Le supertype de tout type; tout objet est de type Any |
14 | AnyRef Le supertype de tout type de référence |
Tous les types de données répertoriés ci-dessus sont des objets. Il n'y a pas de types primitifs comme en Java. Cela signifie que vous pouvez appeler des méthodes sur un Int, un Long, etc.
Littéraux de base Scala
Les règles utilisées par Scala pour les littéraux sont simples et intuitives. Cette section explique tous les littéraux Scala de base.
Littéraux intégraux
Les littéraux entiers sont généralement de type Int, ou de type Long lorsqu'ils sont suivis d'un suffixe L ou l. Voici quelques littéraux entiers -
0
035
21
0xFFFFFFFF
0777L
Littéral à virgule flottante
Les littéraux à virgule flottante sont de type Float lorsqu'ils sont suivis d'un suffixe de type à virgule flottante F ou f, et sont de type Double dans le cas contraire. Voici quelques littéraux en virgule flottante -
0.0
1e30f
3.14159f
1.0e100
.1
Littéraux booléens
Les littéraux booléens true et false sont des membres de type Boolean.
Littéraux de symboles
Un symbole littéral 'x est un raccourci pour l'expression scala.Symbol("x"). Symbol est une classe de cas, définie comme suit.
package scala
final case class Symbol private (name: String) {
override def toString: String = "'" + name
}
Littéraux de caractères
Un littéral de caractère est un seul caractère entre guillemets. Le caractère est un caractère Unicode imprimable ou est décrit par une séquence d'échappement. Voici quelques caractères littéraux -
'a'
'\u0041'
'\n'
'\t'
Littéraux de chaîne
Un littéral de chaîne est une séquence de caractères entre guillemets. Les caractères sont des caractères Unicode imprimables ou sont décrits par des séquences d'échappement. Voici quelques littéraux de chaîne -
"Hello,\nWorld!"
"This string contains a \" character."
Cordes multilignes
Un littéral de chaîne multiligne est une séquence de caractères entre guillemets triples "" "..." "". La séquence de caractères est arbitraire, sauf qu'elle peut contenir trois ou plusieurs guillemets consécutifs uniquement à la toute fin.
Les caractères ne doivent pas nécessairement être imprimables; les sauts de ligne ou autres caractères de contrôle sont également autorisés. Voici un littéral de chaîne multiligne -
"""the present string
spans three
lines."""
Valeurs nulles
La valeur nulle est de type scala.Nullet est donc compatible avec tous les types de référence. Il désigne une valeur de référence qui fait référence à un objet spécial "nul".
Séquences d'échappement
Les séquences d'échappement suivantes sont reconnues dans les littéraux de caractères et de chaînes.
Séquences d'échappement | Unicode | La description |
---|---|---|
\ b | \ u0008 | retour arrière BS |
\ t | \ u0009 | onglet horizontal HT |
\ n | \ u000c | formfeed FF |
\F | \ u000c | formfeed FF |
\ r | \ u000d | retour chariot CR |
\ " | \ u0022 | double citation " |
\ ' | \ u0027 | simple citation . |
\\ | \ u005c | barre oblique inverse \ |
Un caractère avec Unicode entre 0 et 255 peut également être représenté par un échappement octal, c'est-à-dire une barre oblique inverse «\» suivie d'une séquence de trois caractères octaux maximum. Voici l'exemple pour montrer quelques caractères de séquence d'échappement -
Exemple
object Test {
def main(args: Array[String]) {
println("Hello\tWorld\n\n" );
}
}
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -
Production
Hello World