Учебники

Scala — Типы данных

Scala имеет все те же типы данных, что и Java, с тем же объемом памяти и точностью. Ниже приведена таблица с подробной информацией обо всех типах данных, доступных в Scala.

Sr.No Тип данных и описание
1

Байт

8-битное значение со знаком. Диапазон от -128 до 127

2

короткий

16-битное значение со знаком. Диапазон от -32768 до 32767

3

Int

32-битное значение со знаком. Диапазон от -2147483648 до 2147483647

4

Долго

64-битное значение со знаком. От -9223372036854775808 до 9223372036854775807

5

терка

32-разрядный IEEE 754 с плавающей точкой одинарной точности

6

двойной

64-разрядный IEEE 754 с двойной точностью

7

голец

16-битный символ Unicode без знака. Диапазон от U + 0000 до U + FFFF

8

строка

Последовательность символов

9

логический

Либо буквальная правда, либо буквальная ложь

10

Единица измерения

Не соответствует никакой ценности

11

Ноль

пустая или пустая ссылка

12

Ничего такого

Подтип любого другого типа; не содержит значений

13

любой

Супертип любого типа; любой объект имеет тип Any

14

AnyRef

Супертип любого ссылочного типа

Байт

8-битное значение со знаком. Диапазон от -128 до 127

короткий

16-битное значение со знаком. Диапазон от -32768 до 32767

Int

32-битное значение со знаком. Диапазон от -2147483648 до 2147483647

Долго

64-битное значение со знаком. От -9223372036854775808 до 9223372036854775807

терка

32-разрядный IEEE 754 с плавающей точкой одинарной точности

двойной

64-разрядный IEEE 754 с двойной точностью

голец

16-битный символ Unicode без знака. Диапазон от U + 0000 до U + FFFF

строка

Последовательность символов

логический

Либо буквальная правда, либо буквальная ложь

Единица измерения

Не соответствует никакой ценности

Ноль

пустая или пустая ссылка

Ничего такого

Подтип любого другого типа; не содержит значений

любой

Супертип любого типа; любой объект имеет тип Any

AnyRef

Супертип любого ссылочного типа

Все перечисленные выше типы данных являются объектами. Там нет примитивных типов, как в Java. Это означает, что вы можете вызывать методы для Int, Long и т. Д.

Скала Основные литералы

Правила, которые Scala использует для литералов, просты и интуитивно понятны. В этом разделе описаны все основные литералы Scala.

Интегральные литералы

Целочисленные литералы обычно имеют тип Int или тип Long, за которым следует суффикс L или l. Вот некоторые целочисленные литералы —

0
035
21 
0xFFFFFFFF 
0777L

Литерал с плавающей точкой

Литералы с плавающей запятой имеют тип Float, если за ними следует суффикс типа F или f с плавающей запятой, в противном случае они имеют тип Double. Вот некоторые литералы с плавающей точкой —

0.0 
1e30f 
3.14159f 
1.0e100
.1

Логические литералы

Булевы литералы true и false являются членами типа Boolean.

Символьные литералы

Символьный литерал ‘x является сокращением для выражения scala.Symbol («x») . Символ представляет собой класс case, который определяется следующим образом.

package scala
final case class Symbol private (name: String) {
   override def toString: String = "'" + name
}

Символьные литералы

Символьный литерал — это отдельный символ, заключенный в кавычки. Символ является либо печатным символом Unicode, либо описан escape-последовательностью. Вот некоторые литералы символов —

'a' 
'\u0041'
'\n'
'\t'

Строковые литералы

Строковый литерал — это последовательность символов в двойных кавычках. Символы являются либо печатными символами Unicode, либо описываются escape-последовательностями. Вот некоторые строковые литералы —

"Hello,\nWorld!"
"This string contains a \" character."

Многострочные строки

Многострочный строковый литерал — это последовательность символов, заключенная в тройные кавычки «» «…» «». Последовательность символов произвольна, за исключением того, что она может содержать три или более последовательных символа кавычки только в самом конце.

Символы не обязательно должны быть напечатаны; переводы строки и другие управляющие символы также разрешены. Вот многострочный строковый литерал —

"""the present string
spans three
lines."""

Нулевые значения

Нулевое значение имеет тип scala.Null и поэтому совместимо с каждым ссылочным типом. Он обозначает ссылочное значение, которое ссылается на специальный «нулевой» объект.

Побег последовательности

Следующие escape-последовательности распознаются в символьных и строковых литералах.

Побег последовательности Unicode Описание
\ б \ u0008 Backspace BS
\ т \ u0009 горизонтальная вкладка HT
\ п \ u000c FormFed FF
\ е \ u000c FormFed FF
\ u000d возврат каретки CR
\ u0022 двойная кавычка
\ u0027 одиночная кавычка.
\\ \ u005c обратный слеш \

Символ с Unicode от 0 до 255 также может быть представлен восьмеричным экранированием, то есть обратной косой чертой ‘\’, за которой следует последовательность до трех восьмеричных символов. Ниже приведен пример, показывающий несколько символов escape-последовательности:

пример

object Test {
   def main(args: Array[String]) {
      println("Hello\tWorld\n\n" );
   }
} 

Когда приведенный выше код компилируется и выполняется, он дает следующий результат —