English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Типы данных Scala

Scala имеет те же типы данных, что и Java. В таблице ниже приведены поддерживаемые Scala типы данных:

Тип данныхОписание
Byte8-битное целое число с знаковой композицией. Диапазон значений от -128 до 127
Short16-битное целое число с знаковой композицией. Диапазон значений от -32768 до 32767
Int 32-битное целое число с знаковой композицией. Диапазон значений от -2147483648 до 2147483647
Long 64-битное целое число с знаковой композицией. Диапазон значений от -9223372036854775808 до 9223372036854775807
Float32-битное двоичное浮-pointное число по стандарту IEEE 754
Double64-битное двоичное浮-pointное число по стандарту IEEE 754
Char16-битный несимвольный Unicode символ, диапазон значений от U+0000 до U+FFFF
StringЦелая последовательность символов
Booleantrue или false
UnitТип Unit представляет собой значение без значения, эквивалент void в других языках программирования. Используется в качестве типа результата для методов, не возвращающих значения. У Unit есть единственный экземпляр, записываемый как ()
Nullnull или пустая ссылка
NothingТип Nothing находится на нижней грани классовой иерархии Scala; это подтип любого другого типа.
AnyAny является суперклассом для всех других классов
AnyRefAnyRef класс является базовым классом для всех ссылочных классов (reference class) в Scala

Все данные типы, перечисленные в таблице, являются объектами, что означает, что Scala не имеет的原生 типов, как в Java. В Scala можно вызывать методы для базовых типов, таких как числа.

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

Scala очень проста и интуитивна. В следующем разделе мы более подробно рассмотрим литералы Scala.

Литералы целых чисел

Литералы целых чисел используются для типа Int, если необходимо указать Long, можно добавить суффикс L или маленькую l в конце числа.

0
035
21 
0xFFFFFFFF 
0777L

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

Если浮点ное число заканчивается суффиксом f или F, это означает, что это тип Float, в противном случае это тип Double. Примеры:

0.0 
1e30f 
3.14159f 
1.0e100
.1

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

Логические литералы имеют true и false.

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

символьный литерал записывается следующим образом: '<Идентификатор> здесь <Идентификатор> может быть любым идентификатором, состоящим из букв или цифр (обратите внимание: не может начинаться с цифры). Этот литерал отображается в экземпляр предопределенного класса scala.Symbol.

например: символьный литерал 'x является выражением scala.Symbol("x") является сокращением, символический литерал определен следующим образом:

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

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

В Scala символы переменных представляют с помощью одинарных кавычек ' определены следующим образом:

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

в том числе \ представляет символ Escape, за которым может следовать u0041 Число или \r\n и другие фиксированные символы Escape.

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

В Scala строковые литералы представляют с помощью двойных кавычек " определены следующим образом:

"Hello,\nWorld!"
"Официальный веб-сайт учебника: ru.oldtoolbag.com"

Метод представления многострочных строк

Многострочные строки представляют с помощью тройных двойных кавычек, формат:""" ... """.

Пример приведен ниже:

val foo = """Основной учебник"
ru.oldtoolbag.com
ru.oldtoolbag.com
www.runnoob.com
Доступны все три адреса:

Значение Null

Пустая стоимость — это тип scala.Null.

Scala.Null и scala.Nothing — это особые типы, которые обрабатывают некоторые "граничные ситуации" системы объектно-ориентированных типов Scala с помощью единого подхода.

Класс Null является типом для null-ссылок, он является подклассом каждого класса-референса (классы, наследующие AnyRef). Null несовместим с типами значений.

Символы escape в Scala

В таблице ниже приведены распространенные символы escape:

Символы escapeUnicodeОписание
\b\u0008backspace (BS) , перемещает текущую позицию в предыдущую колонку
\t\u0009horizontal tab (HT) (прыжок к следующей позиции TAB)
\n\u000anewline (LF) , перемещает текущую позицию в начало следующей строки
\f\u000cpage feed (FF) , перемещает текущую позицию в начало следующей страницы
\r\u000dnewline (CR) , перемещает текущую позицию в начало строки
"\u0022представляет символ двойной кавычки ("
'\u0027представляет символ одинарной кавычки (')
\\\u005cпредставляет символ обратной косой черты '\'

Unicode символы в диапазоне от 0 до 255 могут быть представлены с помощью восьмеричной последовательности escape, то есть обратной косой черты "\" следуемой максимум трёх восьмеричных цифр.

В символе или строке, обратная косая черта и последующая последовательность символов не могут образовывать законную последовательность escape, что приведет к Ошибка компиляции.

Ниже приведен пример использования некоторых символов.escape

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

Результат выполнения будет выглядеть следующим образом:

$ scalac Test.scala
$ scala TestHello    World