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.