Spec-Zone.ru › Scala 3.1

Класс 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 ...
}

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

Суперадресные типы
class Object
trait Matchable
class Any

Конкретные методы

Исходный код
override def toString: String

Определения классов Any

Исходный код
def value: T

Получение текущего значения

Исходный код
def value_=(newval: T): Unit

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

Исходный код
def withValue[S](newval: T)(thunk: => S): S

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

Параметры значений
newval

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

thunk

Код для вычисления при новом значении

© 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

Spec-Zone.ru

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