Spec-Zone.ru › Scala 2.13 Library

Класс scala.ValueOf

final класс ValueOf[T] extends AnyVal

ValueOf[T] предоставляет уникальное значение типа T, где T — тип, имеющий единственное значение. Допустимые типы — это одиночные типы формы stablePath.type, Unit и одиночные типы, соответствующие литералам значений.

Экземпляры ValueOf[T] предоставляются неявно для всех допустимых типов. Как правило, экземпляр требуется, когда необходимо получить значение во время выполнения, соответствующее вычислению на уровне типов.

Например, мы можем определить тип Residue[M <: Int], соответствующий группе целых чисел по модулю M. Тогда мы могли бы потребовать, чтобы остатки суммировались только при одинаковом модуле.

case class Residue[M <: Int](n: Int) extends AnyVal {
  def +(rhs: Residue[M])(implicit m: ValueOf[M]): Residue[M] =
    Residue((this.n + rhs.n) % valueOf[M])
}

val fiveModTen = Residue[10](5)
val nineModTen = Residue[10](9)

fiveModTen + nineModTen    // OK == Residue[10](4)

val fourModEleven = Residue[11](4)

fiveModTen + fourModEleven // compiler error: type mismatch;
                           //   found   : Residue[11]
                           //   required: Residue[10]

Обратите внимание, что здесь модуль закодирован в типе значений и не влечёт дополнительных затрат на хранение для каждого значения. Когда в реализации + требуется значение модуля во время выполнения, оно предоставляется в месте вызова через неявный аргумент m типа ValueOf[M].

Аннотации
@implicitNotFound("Нет одиночного значения, доступного для ${T}.")
Источник
ValueOf.scala
Линейные супертипы
AnyVal, Any

Конструкторы экземпляров

новый ValueOf(value: T)

Члены-значения

final def !=(arg0: Any): Boolean

Проверка двух объектов на неравенство.

returns

true если !(this == that), в противном случае false.

Definition Classes
Any

final def ##(): Int

Эквивалентно x.hashCode за исключением упакованных числовых типов и null. Для числовых типов возвращает значение хеша, которое соответствует равенству значений: если два экземпляра типа значения сравниваются как true, то ## вернёт одинаковое значение хеша для каждого из них. Для null возвращает хеш-код, где null.hashCode вызывает NullPointerException.

returns

значение хеша, согласованное с ==

Definition Classes
Any

def +(other: String): String

Implicit
Этот член добавлен неявным преобразованием из ValueOf[T] в any2stringadd[ValueOf[T]] с помощью метода any2stringadd в scala.Predef.
Definition Classes
any2stringadd

def ->[B](y: B): (ValueOf[T], B)

Implicit
Этот член добавлен неявным преобразованием из ValueOf[T] в ArrowAssoc[ValueOf[T]] с помощью метода ArrowAssoc в scala.Predef.
Definition Classes
ArrowAssoc
Annotations
@inline()

final def ==(arg0: Any): Boolean

Проверка двух объектов на равенство. Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

returns

true если объект-приёмник эквивалентен аргументу; false в противном случае.

Definition Classes
Any

final def asInstanceOf[T0]: T0

Приведение объекта-приёмника к типу T0.

Обратите внимание, что успех приведения во время выполнения обусловлен семантикой стирания Scala. Таким образом, выражение 1.asInstanceOf[String] выбросит ClassCastException во время выполнения, тогда как выражение List(1).asInstanceOf[List[String]] этого не сделает. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли содержимое списка требуемому типу.

returns

объект-приёмник.

Definition Classes
Any
Исключения

ClassCastException, если объект-приёмник не является экземпляром стирания типа T0.

def ensuring(cond: (ValueOf[T]) => Boolean, msg: => Any): ValueOf[T]

Implicit
Этот член добавлен неявным преобразованием из ValueOf[T] в Ensuring[ValueOf[T]] с помощью метода Ensuring в scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: (ValueOf[T]) => Boolean): ValueOf[T]

Implicit
Этот член добавлен неявным преобразованием из ValueOf[T] в Ensuring[ValueOf[T]] с помощью метода Ensuring в scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: Boolean, msg: => Any): ValueOf[T]

Implicit
Этот член добавлен неявным преобразованием из ValueOf[T] в Ensuring[ValueOf[T]] с помощью метода Ensuring в scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: Boolean): ValueOf[T]

Неявный
Этот член добавлен неявным преобразованием из ValueOf[T] вEnsuring[ValueOf[T]] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def formatted(fmtstr: String): String

Возвращает строку, отформатированную в соответствии с заданной строкой format. Строки форматирования аналогичны строкам форматирования в String.format (@см. java.lang.String.format).

Неявный
Этот член добавлен неявным преобразованием из ValueOf[T] вStringFormat[ValueOf[T]] с помощью метода StringFormat в scala.Predef.
Определяющие классы
StringFormat
Аннотации
@inline()

def getClass(): Class[_ <: AnyVal]

Возвращает представление класса объекта во время выполнения.

возвращает

объект класса, соответствующий типу получателя во время выполнения.

Определяющие классы
AnyVal → 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

val value: T

© 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/ValueOf.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API