Я пытаюсь сделать таймер, который измеряет время выполнения области.Я мог бы сделать это, запустив таймер вручную, а затем поместив что-то в конец области видимости, чтобы остановить таймер, но это вдвое больше работы.В C ++ вы можете создать класс таймера, который оценивает, когда вызывается его деструктор, и деструкторы вызываются, когда что-то выходит из области видимости, поэтому таймер заботится о себе «автоматически».Поскольку Scala является управляемым языком, экземпляр не исчезнет до тех пор, пока он не станет сборщиком мусора, поэтому полагаться на этот метод практически бесполезно с точки зрения таймера, если только я не пытался определить, как долго что-то осталось, пока оно не будет собрано.
Вот пример того, как будет выглядеть код для создания таймера, если он будет автоматически оцениваться в тот момент, когда он покинул область действия:
def someMethod(someVar: Int) {
val myTimer: ScopeTimer = ScopeTimer(startImmediately = true)
// Do some stuff
// Do more stuff
10 // Return some int value here
}
Поскольку метод вернул 10
, myTimer
оставил бы прицел и выстрелил.
Есть ли какой-нибудь простой способ сделать таймер для оценки времени выполнения прицела, подобного этому, в Scala?