Класс scala.AnyVal
абстрактный класс AnyVal extends Any
- UnapplySeqWrapper, Boolean, Byte, Char, Double, Float, UnliftOps, Int, Long, ElementWiseExtractor, ArrowAssoc, Ensuring, StringFormat, Short, Unit, ValueOf, ArrayOps, IterableOnceExtensionMethods, SizeCompareOps, UnapplySeqWrapper, Shape, StringOps, Deferrer, Partial, Deferrer, UnwrapOp, DoubleMult, DurationDouble, DurationInt, DurationLong, IntMult, LongMult, JavaDurationOps, ScalaDurationOps, RichBiConsumerAsFunction2, RichBiFunctionAsFunction2, RichBiPredicateAsFunction2, RichBinaryOperatorAsFunction2, RichBooleanSupplierAsFunction0, RichConsumerAsFunction1, RichDoubleBinaryOperatorAsFunction2, RichDoubleConsumerAsFunction1, RichDoubleFunctionAsFunction1, RichDoublePredicateAsFunction1, RichDoubleSupplierAsFunction0, RichDoubleToIntFunctionAsFunction1, RichDoubleToLongFunctionAsFunction1, RichDoubleUnaryOperatorAsFunction1, RichFunction0AsBooleanSupplier, RichFunction0AsDoubleSupplier, RichFunction0AsIntSupplier, RichFunction0AsLongSupplier, RichFunction0AsSupplier, RichFunction1AsConsumer, RichFunction1AsDoubleConsumer, RichFunction1AsDoubleFunction, RichFunction1AsDoublePredicate, RichFunction1AsDoubleToIntFunction, RichFunction1AsDoubleToLongFunction, RichFunction1AsDoubleUnaryOperator, RichFunction1AsFunction, RichFunction1AsIntConsumer, RichFunction1AsIntFunction,
- RichFunction1AsIntPredicate, RichFunction1AsIntToDoubleFunction, RichFunction1AsIntToLongFunction, RichFunction1AsIntUnaryOperator, RichFunction1AsLongConsumer, RichFunction1AsLongFunction, RichFunction1AsLongPredicate, RichFunction1AsLongToDoubleFunction, RichFunction1AsLongToIntFunction, RichFunction1AsLongUnaryOperator, RichFunction1AsPredicate, RichFunction1AsToDoubleFunction, RichFunction1AsToIntFunction, RichFunction1AsToLongFunction, RichFunction1AsUnaryOperator, RichFunction2AsBiConsumer, RichFunction2AsBiFunction, RichFunction2AsBiPredicate, RichFunction2AsBinaryOperator, RichFunction2AsDoubleBinaryOperator, RichFunction2AsIntBinaryOperator, RichFunction2AsLongBinaryOperator, RichFunction2AsObjDoubleConsumer, RichFunction2AsObjIntConsumer, RichFunction2AsObjLongConsumer, RichFunction2AsToDoubleBiFunction, RichFunction2AsToIntBiFunction, RichFunction2AsToLongBiFunction, RichFunctionAsFunction1, RichIntBinaryOperatorAsFunction2, RichIntConsumerAsFunction1, RichIntFunctionAsFunction1, RichIntPredicateAsFunction1, RichIntSupplierAsFunction0, RichIntToDoubleFunctionAsFunction1, RichIntToLongFunctionAsFunction1, RichIntUnaryOperatorAsFunction1, RichLongBinaryOperatorAsFunction2, RichLongConsumerAsFunction1, RichLongFunctionAsFunction1, RichLongPredicateAsFunction1, RichLongSupplierAsFunction0, RichLongToDoubleFunctionAsFunction1, RichLongToIntFunctionAsFunction1, RichLongUnaryOperatorAsFunction1, RichObjDoubleConsumerAsFunction2, RichObjIntConsumerAsFunction2, RichObjLongConsumerAsFunction2,
- RichPredicateAsFunction1, RichSupplierAsFunction0, RichToDoubleBiFunctionAsFunction2, RichToDoubleFunctionAsFunction1, RichToIntBiFunctionAsFunction2, RichToIntFunctionAsFunction1, RichToLongBiFunctionAsFunction2, RichToLongFunctionAsFunction1, RichUnaryOperatorAsFunction1, CompletionStageOps, FutureOps, RichOption, RichOptional, RichOptionalDouble, RichOptionalInt, RichOptionalLong, ChainingOps, MergeableEither, any2stringadd, SearchImpl
Конструкторы экземпляров
new 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)).
- возвращает
trueесли объект-получатель эквивалентен аргументу;falseв противном случае.
- Определяющие классы
- Any
def formatted(fmtstr: String): String
Возвращает строку, отформатированную согласно заданной format строке. Формат строк аналогичен String.format (@see java.lang.String.format).
- Неявный
- Этот член добавлен неявным преобразованием из AnyVal в StringFormat[AnyVal] с помощью метода StringFormat в scala.Predef.
- Определяющие классы
- StringFormat
- Аннотации
- @inline()
def getClass(): Class[_ <: AnyVal]
Возвращает представление класса объекта во время выполнения.
- возвращает
объект класса, соответствующий типу получателя во время выполнения.
def hashCode(): Int
Вычисляет значение кода хэша объекта.
Стандартный алгоритм хэширования зависит от платформы.
Важно отметить, что для двух объектов могут совпадать коды хэша (o1.hashCode.equals(o2.hashCode)) но при этом они могут не быть равны (o1.equals(o2) возвращает false). Вырожденная реализация может всегда возвращать 0. Однако требуется, чтобы если два объекта равны (o1.equals(o2) возвращает true ), у них были идентичные коды хэша (o1.hashCode.equals(o2.hashCode)). Поэтому при переопределении этого метода необходимо убедиться, что поведение согласуется с методом equals .
- возвращает
значение кода хэша для этого объекта.
- Определяющие классы
- Any
final def isInstanceOf[T0]: Boolean
Проверка, соответствует ли динамический тип объекта-получателя типу T0.
Обратите внимание, что результат проверки зависит от стирания типов в Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, в то время как выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере из-за стирания типа во время компиляции нельзя проверить, соответствуют ли содержимое списка указанному типу.
- возвращает
trueесли объект-получатель является экземпляром стирания типаT0;falseв противном случае.
- Определяющие классы
- Any
def toString(): String
Возвращает строковое представление объекта.
По умолчанию представление зависит от платформы.
- возвращает
строковое представление объекта.
- Определяющие классы
- Any
© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/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.