Using
Type members
Classlikes
Value members
Concrete methods
Returns a Using keyword to execute a ScopeExitHandler when exiting the nearest enclosing scope that is annotated as @reset, (or the nearest enclosing function if compilerplugins.ResetEverywhere is enabled).
Returns a Using keyword to execute a ScopeExitHandler when exiting the nearest enclosing scope that is annotated as @reset, (or the nearest enclosing function if compilerplugins.ResetEverywhere is enabled).
- Note
This method is similar to apply, except the parameter type is changed from a generic
R
to the SAM type ScopeExitHandler, which allows for function literal expressions in Scala 2.12+ or Scala 2.11 with-Xexperimental
compiler option.- Example
The following function will perform
n *= 2
aftern += 20
:import scala.concurrent.Future import com.thoughtworks.dsl.keywords.Using.scopeExit import com.thoughtworks.dsl.keywords.Using.unary_! import com.thoughtworks.dsl.macros.Reset.Default.* var n = 1 def multiplicationAfterAddition = *[Future] { !scopeExit { () => n *= 2 } n += 20 }
Therefore, the final value of
n
should be(1 + 20) * 2 = 42
.multiplicationAfterAddition.map { _ => n should be(42) }