Класс scala.util.DynamicVariable
class DynamicVariable[T](init: T)
DynamicVariables обеспечивает механизм связывания, где текущее значение находится через динамический контекст, но доступ к переменной сам по себе решается через статический контекст.
Текущее значение можно получить с помощью метода value. Новые значения должны быть установлены с помощью метода withValue. Значения, установленные с помощью withValue, остаются действительными только до тех пор, пока выполняется второй аргумент метода withValue, параметризованный безаргументным замыканием. Когда второй аргумент завершается, переменная возвращается к предыдущему значению.
someDynamicVariable.withValue(newValue) {
// ... code called in here that calls value ...
// ... will be given back the newValue ...
}
Каждый поток получает свой собственный стек связываний. При создании нового потока он получает копию стека связываний из родительского потока, и с этого момента связывания нового потока независимы от связываний исходного потока.
| Суперадресные типы |
|---|
Конкретные методы
Исходный код
| Определения классов | Any |
|---|
Исходный код
def value: T
Получение текущего значения
Исходный код
Изменение текущего связанного значения, отбрасывая старое. Обычно withValue() обеспечивает лучшую семантику.
Исходный код
def withValue[S](newval: T)(thunk: => S): S
Установка значения переменной во время выполнения заданного замыкания.
| Параметры значений |
|
|---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/util/DynamicVariable.html