Spec-Zone.ru › Scala 2.13 Library

Class scala.util.DynamicVariable

class DynamicVariable[T] extends AnyRef

DynamicVariables обеспечить механизм связывания, где текущее значение находится через динамический контекст, но доступ к самой переменной решается через статический контекст.

Текущее значение можно получить с помощью метода value. Новые значения должны быть установлены с помощью метода withValue. Значения, установленные через withValue, остаются действительными только пока выполняется второй аргумент withValue, безаргументная замыкание. Когда второй аргумент завершается, переменная возвращается к предыдущему значению.

someDynamicVariable.withValue(newValue) {
  // ... code called in here that calls value ...
  // ... will be given back the newValue ...
}

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

Source
DynamicVariable.scala
Since

2.6

Linear Supertypes
AnyRef, Any

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

новый DynamicVariable(init: T)

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

окончательный def !=(arg0: Any): Boolean

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

возвращает

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

Определяющие классы
AnyRef → Any

окончательный def ##(): Int

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

возвращает

значение хэш-кода, соответствующее ==

Определяющие классы
AnyRef → Any

def +(other: String): String

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

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

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

окончательный def ==(arg0: Any): Boolean

Выражение x == that эквивалентно if (x eq null) that eq null else x.equals(that).

возвращает

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

Определяющие классы
AnyRef → Any

окончательный def asInstanceOf[T0]: T0

Преобразование объекта получателя в тип T0.

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

возвращает

объект получателя.

Определяющие классы
Any
Исключения

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

def clone(): AnyRef

Создаёт копию объекта получателя.

По умолчанию реализация метода clone зависит от платформы.

возвращает

копию объекта получателя.

Атрибуты
protected[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()
Примечание

не указано SLS как член AnyRef

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

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

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

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

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

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

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

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

final def eq(arg0: AnyRef): Boolean

Проверяет, является ли аргумент (that) ссылкой на принимаемый объект (this).

Метод eq реализует отношение эквивалентности на непустых экземплярах AnyRef, и имеет три дополнительных свойства:

    Он согласован: для любых непустых экземпляров x и y типа AnyRef, многократные вызовы x.eq(y) последовательно возвращают true или последовательно возвращают false. Для любого непустого экземпляра x типа AnyRef, x.eq(null) и null.eq(x) возвращают false. null.eq(null) возвращает true.

При переопределении методов equals или hashCode важно обеспечить согласованность их поведения со ссылочной эквивалентностью. Поэтому, если два объекта являются ссылками друг на друга (o1 eq o2), они должны быть равны друг другу (o1 == o2) и должны иметь одинаковое значение хеша (o1.hashCode == o2.hashCode).

возвращает

true если аргумент является ссылкой на принимаемый объект; false в противном случае.

Определяющие классы
AnyRef

def equals(arg0: AnyRef): Boolean

Метод равенства для типов ссылок. По умолчанию делегирует вызов eq.

См. также equals в scala.Any.

возвращает

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

Определяющие классы
AnyRef → Any

def finalize(): Unit

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

Подробности о том, когда и если вызывается метод finalize, а также взаимодействие между finalize и нелокальными возвратами и исключениями, зависят от платформы.

Атрибуты
protected[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.Throwable])
Примечание

не указано SLS как член AnyRef

def formatted(fmtstr: String): String

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

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

final def getClass(): Class[_ <: AnyRef]

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

возвращает

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

Определяющие классы
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Метод hashCode для ссылочных типов. См. hashCode в scala.Any.

возвращает

значение хэш-кода для этого объекта.

Определяющие классы
AnyRef → Any
Аннотации
@native()

final def isInstanceOf[T0]: Boolean

Проверка, является ли динамический тип объекта-приёмника T0.

Обратите внимание, что результат проверки учитывает семантику стирания Scala. Поэтому выражение 1.isInstanceOf[String] вернёт false, а выражение List(1).isInstanceOf[List[String]] вернёт true. В последнем примере, поскольку аргумент типа стирается во время компиляции, невозможно проверить, соответствуют ли элементы списка указанному типу.

возвращает

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

Определяющие классы
Any

final def ne(arg0: AnyRef): Boolean

Эквивалентно !(this eq that).

возвращает

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

Определяющие классы
AnyRef

final def notify(): Unit

Разбуживает один поток, ожидающий монитор объекта-приёмника.

Определяющие классы
AnyRef
Аннотации
@native()
Примечание

не указано в SLS как член AnyRef

final def notifyAll(): Unit

Разбуживает все потоки, ожидающие монитор объекта-приёмника.

Определяющие классы
AnyRef
Аннотации
@native()
Примечание

не указано в SLS как член AnyRef

final def synchronized[T0](arg0: => T0): T0

Определяющие классы
AnyRef

def toString(): String

Создаёт строковое представление этого объекта. По умолчанию представление зависит от платформы. На платформе Java это конкатенация имени класса, «@» и хэш-кода объекта в шестнадцатеричном формате.

возвращает

строковое представление объекта.

Определяющие классы
DynamicVariable → AnyRef → Any

def value: T

def value_=(newval: T): Unit

Изменить текущее связанное значение, отбросив старое. Обычно withValue() обеспечивает лучшую семантику.

final def wait(): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long, arg1: Int): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException]) @native()

def withValue[S](newval: T)(thunk: => S): S

Устанавливает значение переменной во время выполнения указанного thunk.

newval

Значение, на которое нужно установить переменную

thunk

Код для вычисления в новом контексте

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

Spec-Zone.ru

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