groovy
Memorerade funktioner
Sök…
Memorerade funktioner
Att memorera är i princip ett sätt att cachemetoderesultat. Detta kan vara användbart när en metod ofta kallas med samma argument och beräkningen av resultatet tar tid, vilket ökar prestandan.
Med början från Groovy 2.2, kan metoder markeras med @Memoized
anteckningen.
Föreställ dig följande klass:
class MemoDemo {
def timesCalculated = 0
@Memoized
def power2(a) {
timesCalculated++
a * a
}
}
Efter det första samtalet med denna metod med ett nummer som det inte har kallats för tidigare kommer metoden att köras:
assert power2(2) == 4
assert timesCalculated == 1
Men om vi kallar det igen med samma argument:
assert power2(2) == 4
assert timesCalculated == 1
timesCalculated
har förblivit oförändrat, men metoden gav samma resultat. Men att kalla det med ett annat argument:
assert power2(3) == 9
assert timesCalculated == 2
resulterar i att kroppen av metoden kallas igen.
Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow