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" ); } }
Когда приведенный выше код компилируется и выполняется, он дает следующий результат —