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).
The following function will perform n *= 2
after n += 20
:
import scala.concurrent.Future import com.thoughtworks.dsl.keywords.Using.scopeExit 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) }
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.