Класс scala.AnyVal
абстрактный класс AnyVal extends Any
Конструкторы экземпляров
новый AnyVal()
Члены значений
final def !=(arg0: Any): Boolean
Проверка двух объектов на неравенство.
- возвращает
trueесли !(this == that), в противном случае false.
- Классы определений
- Any
final def ##(): Int
Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для чисел возвращает хеш-значение, которое соответствует равенству значений: если два экземпляра типа значения сравниваются как true, то ## будет генерировать одинаковое хеш-значение для каждого из них. Для null возвращает хеш-код, где null.hashCode вызывает NullPointerException.
- возвращает
хеш-значение, согласованное с ==
- Классы определений
- Any
def +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из AnyVal в any2stringadd[AnyVal] при помощи метода any2stringadd в scala.Predef.
- Классы определений
- any2stringadd
def ->[B](y: B): (AnyVal, B)
- Неявный
- Этот член добавлен неявным преобразованием из AnyVal в ArrowAssoc[AnyVal] при помощи метода ArrowAssoc в scala.Predef.
- Классы определений
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Классы определений
- Any
final def asInstanceOf[T0]: T0
Приведение типа объекта-получателя к типу T0.
Обратите внимание, что успешность приведения типов во время выполнения зависит от семантики стирания Scala. Следовательно, выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, в то время как выражение List(1).asInstanceOf[List[String]] не выбросит. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, содержатся ли элементы списка в нужном типе.
- возвращает
объект-получатель.
- Классы определений
- Any
- Исключения
ClassCastException, если объект-получатель не является экземпляром стирания типаT0.
def ensuring(cond: (AnyVal) ⇒ Boolean, msg: ⇒ Any): AnyVal
- Неявный
- Этот член добавлен неявным преобразованием из AnyVal в Ensuring[AnyVal] при помощи метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def ensuring(cond: (AnyVal) ⇒ Boolean): AnyVal
- Неявный
- Этот член добавлен неявным преобразованием из AnyVal в Ensuring[AnyVal] при помощи метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def ensuring(cond: Boolean, msg: ⇒ Any): AnyVal
- Неявный
- Этот член добавлен неявным преобразованием из AnyVal в Ensuring[AnyVal] при помощи метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def ensuring(cond: Boolean): AnyVal
- Неявный
- Этот член добавлен неявным преобразованием из AnyVal в Ensuring[AnyVal] при помощи метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def equals(arg0: Any): Boolean
Сравнивает объект-получатель (this) с объектом-аргументом (that) на эквивалентность.
Любая реализация этого метода должна быть отношением эквивалентности:
-
Он является рефлексивным: для любого экземпляра
x типа Any, x.equals(x) должно возвращать true.Он является симметричным: для любых экземпляров x и y типа Any, x.equals(y) должно возвращать true тогда и только тогда, когда y.equals(x) возвращает true.Он является транзитивным: для любых экземпляров x, y, и z типа Any если x.equals(y) возвращает true и y.equals(z) возвращает true, то x.equals(z) должно возвращать true.Если вы переопределяете этот метод, вы должны убедиться, что ваша реализация остаётся отношением эквивалентности. Кроме того, при переопределении этого метода обычно необходимо переопределить hashCode для обеспечения того, что объекты, которые являются «равными» (o1.equals(o2) возвращает true), хешируются в один и тот же scala.Int. (o1.hashCode.equals(o2.hashCode)).
- returns
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Definition Classes
- Any
def formatted(fmtstr: String): String
Возвращает строку, отформатированную в соответствии с заданной format строкой. Форматные строки аналогичны String.format (@see java.lang.String.format).
- Implicit
- Этот член добавлен неявным преобразованием из AnyVal в StringFormat[AnyVal] выполненным методом StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
def getClass(): Class[_ <: AnyVal]
Возвращает представление класса во время выполнения для объекта.
- returns
объект класса, соответствующий типу получателя во время выполнения.
def hashCode(): Int
Вычисляет значение кода хеширования для объекта.
По умолчанию алгоритм хеширования зависит от платформы.
Обратите внимание, что для двух объектов допускается иметь одинаковые коды хеширования (o1.hashCode.equals(o2.hashCode)) при этом не быть равными (o1.equals(o2) возвращает false). Вырожденная реализация могла бы всегда возвращать 0. Однако, требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true ), то у них должны быть одинаковые коды хеширования (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода следует убедиться, что поведение согласуется с методом equals.
- returns
значение кода хеширования для этого объекта.
- Definition Classes
- Any
final def isInstanceOf[T0]: Boolean
Проверка, является ли динамический тип объекта-получателя T0.
Обратите внимание, что результат проверки зависит от семантики стирания в Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, так как тип аргумента стирается во время компиляции, проверить, содержат ли элементы списка указанный тип, невозможно.
- returns
trueесли объект-получатель является экземпляром стёртого типаT0;falseв противном случае.
- Definition Classes
- Any
def toString(): String
Возвращает строковое представление объекта.
По умолчанию представление зависит от платформы.
- returns
строковое представление объекта.
- Definition Classes
- Any
def →[B](y: B): (AnyVal, B)
- Implicit
- Этот член добавлен неявным преобразованием из AnyVal в ArrowAssoc[AnyVal] выполненным методом ArrowAssoc в scala.Predef.
- Definition Classes
- ArrowAssoc
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.12.9/scala/AnyVal.html
AnyValявляется корневым классом всех типов значений, которые описывают значения, не реализованные как объекты в базовой системе. Типы значений определены в спецификации языка Scala, раздел 12.2.Стандартная реализация включает девять
AnyValподтипов:scala.Double, scala.Float, scala.Long, scala.Int, scala.Char, scala.Short и scala.Byte — это числовые типы значений.
scala.Unit и scala.Boolean — это нечисловые типы значений.
Другие группировки:
До Scala 2.10,
AnyValбыл запечатанным трайтом. Однако начиная со Scala 2.10, можно определить подклассAnyVal, называемый пользовательским типом значения, который обрабатывается компилятором особым образом. Правильно определенные пользовательские типы значений обеспечивают повышение производительности для пользовательских типов, избегая выделения памяти для объекта во время выполнения и заменяя вызовы виртуальных методов вызовами статических методов.Пользовательские типы значений, которые избегают выделения памяти…
valпараметр, который является базовым представлением во время выполнения.defы, но неvalы,varы или вложенныеtraitsы,classы илиobjectы.AnyVal.equalsилиhashCode.Минимальный пример:
class Wrapper(val underlying: Int) extends AnyVal { def foo: Wrapper = new Wrapper(underlying * 19) }Важно отметить, что пользовательские типы значений ограничены, и в некоторых случаях все еще могут выделять экземпляр класса типа значения во время выполнения. Эти ограничения и обстоятельства подробно описаны в Value Classes and Universal Traits.