But we already have @Lazy which is a bit more explicit? Le sam. 17 mars 2018 à 08:35, Daniel.Sun <sun...@apache.org> a écrit :
> Hi all, > > Sometimes we do not want evaluate some expression eagerly(Maybe > evaluation is expensive), e.g. a table contains a field `records` whose > content is queried from DB, but we do not get the content of `records` > eagerly util we access `records`. > > class SomeTable { > def records = ( doQueryFromDB() ) // the expression in the > parentheses will be evaluated lazily > def sum() { > // access the methods or fields of `records`, trigger > evaluation, i.e. the query of DB > } > def getRecords() { > return records // do NOT trigger evaluation > } > } > > Lazy evaluation syntax is very simple( just supports 1) and 2) ): > 1) def v = ( someExpression() ) // Lazy evaluation for variable > declaration > 2) v = ( someExpression ) // Lazy evaluation for assignment > 3) println(( someExpression )) // NOT lazy evaluation > > Any thoughts? > > Cheers, > Daniel.Sun > > > > -- > Sent from: http://groovy.329449.n5.nabble.com/Groovy-Dev-f372993.html >