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

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

Старший Нет Тип данных и описание
1

Byte

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

2

Short

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

3

Int

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

4

Long

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

5

Float

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

6

Double

64-битное число с плавающей запятой двойной точности IEEE 754

7

Char

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

8

String

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

9

Boolean

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

10

Unit

Соответствует без значения

11

Null

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

12

Nothing

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

13

Any

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

14

AnyRef

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

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

Базовые литералы Scala

Правила, которые 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, либо описывается управляющей последовательностью. Вот несколько символьных литералов -

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

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

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

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

Многострочные струны

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

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

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

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

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

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

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

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

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

пример

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

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

Вывод

Hello   World